diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 37b8e852f048..35c68147d934 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -84,3 +84,6 @@ f5a290ac462765afca34e64dd39f883511510147 # Style: Add `class_db.h` includes explicitly e380a417526c11f15a9ddb3997292409b10da2af + +# Move DisplayServer enums and typedefs to DisplayServerEnums +a447ac95ec170ee117c2eae55f1bfff0d0cf0dce diff --git a/core/config/project_settings.cpp b/core/config/project_settings.cpp index 12772cbcc18c..65f9b579736b 100644 --- a/core/config/project_settings.cpp +++ b/core/config/project_settings.cpp @@ -1756,10 +1756,10 @@ ProjectSettings::ProjectSettings() { _add_builtin_input_map(); - // Keep the enum values in sync with the `DisplayServer::ScreenOrientation` enum. + // Keep the enum values in sync with the `DisplayServerEnums::ScreenOrientation` enum. custom_prop_info["display/window/handheld/orientation"] = PropertyInfo(Variant::INT, "display/window/handheld/orientation", PROPERTY_HINT_ENUM, "Landscape,Portrait,Reverse Landscape,Reverse Portrait,Sensor Landscape,Sensor Portrait,Sensor"); GLOBAL_DEF("display/window/subwindows/embed_subwindows", true); - // Keep the enum values in sync with the `DisplayServer::VSyncMode` enum. + // Keep the enum values in sync with the `DisplayServerEnums::VSyncMode` enum. custom_prop_info["display/window/vsync/vsync_mode"] = PropertyInfo(Variant::INT, "display/window/vsync/vsync_mode", PROPERTY_HINT_ENUM, "Disabled,Enabled,Adaptive,Mailbox"); GLOBAL_DEF("display/window/frame_pacing/android/enable_frame_pacing", true); diff --git a/core/input/input.h b/core/input/input.h index 4fe7662a33fa..65928216ab73 100644 --- a/core/input/input.h +++ b/core/input/input.h @@ -41,7 +41,7 @@ class GamepadMotion; namespace InputClassEnums { -// Keep synced with "DisplayServer::MouseMode" enum. +// Keep synced with DisplayServerEnums::MouseMode enum. enum MouseMode : int { MOUSE_MODE_VISIBLE, MOUSE_MODE_HIDDEN, @@ -51,6 +51,7 @@ enum MouseMode : int { MOUSE_MODE_MAX, }; +// Keep synced with DisplayServerEnums and Control enums. #undef CursorShape enum CursorShape : int { CURSOR_ARROW, diff --git a/drivers/accesskit/accessibility_server_accesskit.cpp b/drivers/accesskit/accessibility_server_accesskit.cpp index d96411b366c4..81c85caf2247 100644 --- a/drivers/accesskit/accessibility_server_accesskit.cpp +++ b/drivers/accesskit/accessibility_server_accesskit.cpp @@ -33,7 +33,9 @@ #include "accessibility_server_accesskit.h" #ifdef ACCESSKIT_DYNAMIC +#include "core/config/engine.h" #include "core/io/file_access.h" +#include "core/os/os.h" #endif #include "servers/text/text_server.h" @@ -52,7 +54,7 @@ _FORCE_INLINE_ accesskit_action AccessibilityServerAccessKit::_accessibility_act return ACCESSKIT_ACTION_CLICK; } -bool AccessibilityServerAccessKit::window_create(DisplayServer::WindowID p_window_id, void *p_handle) { +bool AccessibilityServerAccessKit::window_create(DisplayServerEnums::WindowID p_window_id, void *p_handle) { ERR_FAIL_COND_V(windows.has(p_window_id), false); WindowData &wd = windows[p_window_id]; @@ -84,7 +86,7 @@ bool AccessibilityServerAccessKit::window_create(DisplayServer::WindowID p_windo } } -void AccessibilityServerAccessKit::window_destroy(DisplayServer::WindowID p_window_id) { +void AccessibilityServerAccessKit::window_destroy(DisplayServerEnums::WindowID p_window_id) { WindowData *wd = windows.getptr(p_window_id); ERR_FAIL_NULL(wd); @@ -105,7 +107,7 @@ void AccessibilityServerAccessKit::window_destroy(DisplayServer::WindowID p_wind } void AccessibilityServerAccessKit::_accessibility_deactivation_callback(void *p_user_data) { - DisplayServer::WindowID window_id = (DisplayServer::WindowID)(size_t)p_user_data; + DisplayServerEnums::WindowID window_id = (DisplayServerEnums::WindowID)(size_t)p_user_data; WindowData *wd = static_cast(get_singleton())->windows.getptr(window_id); ERR_FAIL_NULL(wd); @@ -126,7 +128,7 @@ void AccessibilityServerAccessKit::_accessibility_deactivation_callback(void *p_ } void AccessibilityServerAccessKit::_accessibility_action_callback(struct accesskit_action_request *p_request, void *p_user_data) { - DisplayServer::WindowID window_id = (DisplayServer::WindowID)(size_t)p_user_data; + DisplayServerEnums::WindowID window_id = (DisplayServerEnums::WindowID)(size_t)p_user_data; ERR_FAIL_COND(!static_cast(get_singleton())->windows.has(window_id)); RID rid = RID::from_uint64(p_request->target); @@ -218,7 +220,7 @@ void AccessibilityServerAccessKit::_accessibility_action_callback(struct accessk } accesskit_tree_update *AccessibilityServerAccessKit::_accessibility_initial_tree_update_callback(void *p_user_data) { - DisplayServer::WindowID window_id = (DisplayServer::WindowID)(size_t)p_user_data; + DisplayServerEnums::WindowID window_id = (DisplayServerEnums::WindowID)(size_t)p_user_data; WindowData *wd = static_cast(get_singleton())->windows.getptr(window_id); ERR_FAIL_NULL_V(wd, nullptr); @@ -243,7 +245,7 @@ accesskit_tree_update *AccessibilityServerAccessKit::_accessibility_initial_tree return tree_update; } -void AccessibilityServerAccessKit::set_window_callbacks(DisplayServer::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) { +void AccessibilityServerAccessKit::set_window_callbacks(DisplayServerEnums::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) { WindowData *wd = static_cast(get_singleton())->windows.getptr(p_window_id); ERR_FAIL_NULL(wd); @@ -251,7 +253,7 @@ void AccessibilityServerAccessKit::set_window_callbacks(DisplayServer::WindowID wd->deactivate = p_deativate_callable; } -void AccessibilityServerAccessKit::window_activation_completed(DisplayServer::WindowID p_window_id) { +void AccessibilityServerAccessKit::window_activation_completed(DisplayServerEnums::WindowID p_window_id) { WindowData *wd = static_cast(get_singleton())->windows.getptr(p_window_id); if (!wd) { return; @@ -262,7 +264,7 @@ void AccessibilityServerAccessKit::window_activation_completed(DisplayServer::Wi wd->initial_update_completed = true; } -void AccessibilityServerAccessKit::window_deactivation_completed(DisplayServer::WindowID p_window_id) { +void AccessibilityServerAccessKit::window_deactivation_completed(DisplayServerEnums::WindowID p_window_id) { WindowData *wd = static_cast(get_singleton())->windows.getptr(p_window_id); if (!wd) { return; @@ -286,7 +288,7 @@ void AccessibilityServerAccessKit::window_deactivation_completed(DisplayServer:: wd->initial_update_completed = false; } -RID AccessibilityServerAccessKit::create_element(DisplayServer::WindowID p_window_id, AccessibilityServerEnums::AccessibilityRole p_role) { +RID AccessibilityServerAccessKit::create_element(DisplayServerEnums::WindowID p_window_id, AccessibilityServerEnums::AccessibilityRole p_role) { AccessibilityElement *ae = memnew(AccessibilityElement); ae->role = _accessibility_role(p_role); ae->window_id = p_window_id; @@ -609,7 +611,7 @@ void AccessibilityServerAccessKit::update_set_focus(const RID &p_id) { } } -RID AccessibilityServerAccessKit::get_window_root(DisplayServer::WindowID p_window_id) const { +RID AccessibilityServerAccessKit::get_window_root(DisplayServerEnums::WindowID p_window_id) const { const WindowData *wd = windows.getptr(p_window_id); ERR_FAIL_NULL_V(wd, RID()); @@ -617,7 +619,7 @@ RID AccessibilityServerAccessKit::get_window_root(DisplayServer::WindowID p_wind } accesskit_tree_update *AccessibilityServerAccessKit::_accessibility_build_tree_update(void *p_user_data) { - DisplayServer::WindowID window_id = (DisplayServer::WindowID)(size_t)p_user_data; + DisplayServerEnums::WindowID window_id = (DisplayServerEnums::WindowID)(size_t)p_user_data; ERR_FAIL_COND_V(!static_cast(get_singleton())->windows.has(window_id), nullptr); WindowData &wd = static_cast(get_singleton())->windows[window_id]; @@ -654,7 +656,7 @@ accesskit_tree_update *AccessibilityServerAccessKit::_accessibility_build_tree_u void AccessibilityServerAccessKit::update_if_active(const Callable &p_callable) { ERR_FAIL_COND(!p_callable.is_valid()); update_cb = p_callable; - for (KeyValue &window : windows) { + for (KeyValue &window : windows) { #ifdef WINDOWS_ENABLED accesskit_windows_queued_events *events = accesskit_windows_subclassing_adapter_update_if_active(window.value.adapter, _accessibility_build_tree_update, (void *)(size_t)window.key); if (events) { @@ -691,7 +693,7 @@ _FORCE_INLINE_ void AccessibilityServerAccessKit::_ensure_node(const RID &p_id, } } -void AccessibilityServerAccessKit::set_window_rect(DisplayServer::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) { +void AccessibilityServerAccessKit::set_window_rect(DisplayServerEnums::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) { #ifdef LINUXBSD_ENABLED const WindowData *wd = windows.getptr(p_window_id); ERR_FAIL_NULL(wd); @@ -702,7 +704,7 @@ void AccessibilityServerAccessKit::set_window_rect(DisplayServer::WindowID p_win #endif } -void AccessibilityServerAccessKit::set_window_focused(DisplayServer::WindowID p_window_id, bool p_focused) { +void AccessibilityServerAccessKit::set_window_focused(DisplayServerEnums::WindowID p_window_id, bool p_focused) { const WindowData *wd = windows.getptr(p_window_id); ERR_FAIL_NULL(wd); diff --git a/drivers/accesskit/accessibility_server_accesskit.h b/drivers/accesskit/accessibility_server_accesskit.h index a3799b402301..84ab59986077 100644 --- a/drivers/accesskit/accessibility_server_accesskit.h +++ b/drivers/accesskit/accessibility_server_accesskit.h @@ -57,7 +57,7 @@ class AccessibilityServerAccessKit : public AccessibilityServer { struct AccessibilityElement { HashMap actions; - DisplayServer::WindowID window_id = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID window_id = DisplayServerEnums::INVALID_WINDOW_ID; RID parent; LocalVector children; Vector3i run; @@ -94,7 +94,7 @@ class AccessibilityServerAccessKit : public AccessibilityServer { RID focus; - HashMap windows; + HashMap windows; HashMap role_map; HashMap action_map; @@ -116,10 +116,10 @@ class AccessibilityServerAccessKit : public AccessibilityServer { public: bool is_supported() const override { return true; } - bool window_create(DisplayServer::WindowID p_window_id, void *p_handle) override; - void window_destroy(DisplayServer::WindowID p_window_id) override; + bool window_create(DisplayServerEnums::WindowID p_window_id, void *p_handle) override; + void window_destroy(DisplayServerEnums::WindowID p_window_id) override; - RID create_element(DisplayServer::WindowID p_window_id, AccessibilityServerEnums::AccessibilityRole p_role) override; + RID create_element(DisplayServerEnums::WindowID p_window_id, AccessibilityServerEnums::AccessibilityRole p_role) override; RID create_sub_element(const RID &p_parent_rid, AccessibilityServerEnums::AccessibilityRole p_role, int p_insert_pos = -1) override; virtual RID create_sub_text_edit_elements(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos = -1, bool p_is_last_line = false) override; bool has_element(const RID &p_id) const override; @@ -131,13 +131,13 @@ class AccessibilityServerAccessKit : public AccessibilityServer { void update_if_active(const Callable &p_callable) override; void update_set_focus(const RID &p_id) override; - RID get_window_root(DisplayServer::WindowID p_window_id) const override; + RID get_window_root(DisplayServerEnums::WindowID p_window_id) const override; - void set_window_rect(DisplayServer::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) override; - void set_window_focused(DisplayServer::WindowID p_window_id, bool p_focused) override; - void set_window_callbacks(DisplayServer::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) override; - void window_activation_completed(DisplayServer::WindowID p_window_id) override; - void window_deactivation_completed(DisplayServer::WindowID p_window_id) override; + void set_window_rect(DisplayServerEnums::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) override; + void set_window_focused(DisplayServerEnums::WindowID p_window_id, bool p_focused) override; + void set_window_callbacks(DisplayServerEnums::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) override; + void window_activation_completed(DisplayServerEnums::WindowID p_window_id) override; + void window_deactivation_completed(DisplayServerEnums::WindowID p_window_id) override; void update_set_role(const RID &p_id, AccessibilityServerEnums::AccessibilityRole p_role) override; void update_set_name(const RID &p_id, const String &p_name) override; diff --git a/drivers/apple_embedded/display_server_apple_embedded.h b/drivers/apple_embedded/display_server_apple_embedded.h index 3bb6b8a45f0e..463755acd478 100644 --- a/drivers/apple_embedded/display_server_apple_embedded.h +++ b/drivers/apple_embedded/display_server_apple_embedded.h @@ -71,7 +71,7 @@ class DisplayServerAppleEmbedded : public DisplayServer { id tts = nullptr; - DisplayServer::ScreenOrientation screen_orientation; + DisplayServerEnums::ScreenOrientation screen_orientation; ObjectID window_attached_instance_id; @@ -98,7 +98,7 @@ class DisplayServerAppleEmbedded : public DisplayServer { virtual float _screen_current_edr_headroom() const { return 1.0f; } float hardware_reference_luminance_nits = 100.0f; - DisplayServerAppleEmbedded(const String &p_rendering_driver, DisplayServer::WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + DisplayServerAppleEmbedded(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); ~DisplayServerAppleEmbedded(); public: @@ -112,16 +112,16 @@ class DisplayServerAppleEmbedded : public DisplayServer { virtual void process_events() override; - virtual void window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_window_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_text_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_drop_files_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; static void _dispatch_input_events(const Ref &p_event); void send_input_event(const Ref &p_event) const; void send_input_text(const String &p_text) const; - void send_window_event(DisplayServer::WindowEvent p_event) const; + void send_window_event(DisplayServerEnums::WindowEvent p_event) const; void _window_callback(const Callable &p_callable, const Variant &p_arg) const; void emit_system_theme_changed(); @@ -148,7 +148,7 @@ class DisplayServerAppleEmbedded : public DisplayServer { // MARK: - - virtual bool has_feature(Feature p_feature) const override; + virtual bool has_feature(DisplayServerEnums::Feature p_feature) const override; virtual bool tts_is_speaking() const override; virtual bool tts_is_paused() const override; @@ -167,67 +167,67 @@ class DisplayServerAppleEmbedded : public DisplayServer { virtual int get_screen_count() const override; virtual int get_primary_screen() const override; - virtual Point2i screen_get_position(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Size2i screen_get_size(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Rect2i screen_get_usable_rect(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual Point2i screen_get_position(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Size2i screen_get_size(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Rect2i screen_get_usable_rect(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; - virtual Vector get_window_list() const override; + virtual Vector get_window_list() const override; - virtual WindowID get_window_at_screen_position(const Point2i &p_position) const override; + virtual DisplayServerEnums::WindowID get_window_at_screen_position(const Point2i &p_position) const override; - virtual int64_t window_get_native_handle(HandleType p_handle_type, WindowID p_window = MAIN_WINDOW_ID) const override; + virtual int64_t window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_attach_instance_id(ObjectID p_instance, WindowID p_window = MAIN_WINDOW_ID) override; - virtual ObjectID window_get_attached_instance_id(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual ObjectID window_get_attached_instance_id(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_title(const String &p_title, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual int window_get_current_screen(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_current_screen(int p_screen, WindowID p_window = MAIN_WINDOW_ID) override; + virtual int window_get_current_screen(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual Point2i window_get_position(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Point2i window_get_position_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_position(const Point2i &p_position, WindowID p_window = MAIN_WINDOW_ID) override; + virtual Point2i window_get_position(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Point2i window_get_position_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_transient(WindowID p_window, WindowID p_parent) override; + virtual void window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) override; - virtual void window_set_max_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_max_size(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_max_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_min_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_min_size(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_min_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_size(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Size2i window_get_size_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Size2i window_get_size_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_mode(WindowMode p_mode, WindowID p_window = MAIN_WINDOW_ID) override; - virtual WindowMode window_get_mode(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::WindowMode window_get_mode(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual bool window_is_maximize_allowed(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_is_maximize_allowed(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_get_flag(WindowFlags p_flag, WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_request_attention(WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_move_to_foreground(WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_is_focused(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_request_attention(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_move_to_foreground(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_is_focused(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; virtual float screen_get_max_scale() const override; - virtual void screen_set_orientation(DisplayServer::ScreenOrientation p_orientation, int p_screen) override; - virtual DisplayServer::ScreenOrientation screen_get_orientation(int p_screen) const override; + virtual void screen_set_orientation(DisplayServerEnums::ScreenOrientation p_orientation, int p_screen) override; + virtual DisplayServerEnums::ScreenOrientation screen_get_orientation(int p_screen) const override; - virtual bool window_can_draw(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_can_draw(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; virtual bool can_any_window_draw() const override; - virtual void window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window = MAIN_WINDOW_ID) override; - virtual DisplayServer::VSyncMode window_get_vsync_mode(WindowID p_vsync_mode) const override; + virtual void window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::VSyncMode window_get_vsync_mode(DisplayServerEnums::WindowID p_vsync_mode) const override; virtual bool is_touchscreen_available() const override; - virtual void virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect, VirtualKeyboardType p_type, int p_max_length, int p_cursor_start, int p_cursor_end) override; + virtual void virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect, DisplayServerEnums::VirtualKeyboardType p_type, int p_max_length, int p_cursor_start, int p_cursor_end) override; virtual void virtual_keyboard_hide() override; void virtual_keyboard_set_height(int height); @@ -243,20 +243,20 @@ class DisplayServerAppleEmbedded : public DisplayServer { // MARK: - HDR / EDR void current_edr_headroom_changed(); - virtual bool window_is_hdr_output_supported(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_request_hdr_output(const bool p_enabled, WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_is_hdr_output_requested(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual bool window_is_hdr_output_enabled(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_is_hdr_output_supported(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_request_hdr_output(const bool p_enabled, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_is_hdr_output_requested(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual bool window_is_hdr_output_enabled(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_hdr_output_reference_luminance(const float p_reference_luminance, WindowID p_window = MAIN_WINDOW_ID) override; - virtual float window_get_hdr_output_reference_luminance(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual float window_get_hdr_output_current_reference_luminance(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_hdr_output_reference_luminance(const float p_reference_luminance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual float window_get_hdr_output_reference_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual float window_get_hdr_output_current_reference_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_hdr_output_max_luminance(const float p_max_luminance, WindowID p_window = MAIN_WINDOW_ID) override; - virtual float window_get_hdr_output_max_luminance(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual float window_get_hdr_output_current_max_luminance(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_hdr_output_max_luminance(const float p_max_luminance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual float window_get_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual float window_get_hdr_output_current_max_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual float window_get_output_max_linear_value(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual float window_get_output_max_linear_value(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; void resize_window(CGSize size); virtual void swap_buffers() override {} diff --git a/drivers/apple_embedded/display_server_apple_embedded.mm b/drivers/apple_embedded/display_server_apple_embedded.mm index b21f88d73b7b..d382a8558fa2 100644 --- a/drivers/apple_embedded/display_server_apple_embedded.mm +++ b/drivers/apple_embedded/display_server_apple_embedded.mm @@ -52,7 +52,7 @@ return (DisplayServerAppleEmbedded *)DisplayServer::get_singleton(); } -DisplayServerAppleEmbedded::DisplayServerAppleEmbedded(const String &p_rendering_driver, WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServerAppleEmbedded::DisplayServerAppleEmbedded(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { KeyMappingAppleEmbedded::initialize(); rendering_driver = p_rendering_driver; @@ -129,7 +129,7 @@ } if (rendering_context) { - if (rendering_context->window_create(MAIN_WINDOW_ID, &wpd) != OK) { + if (rendering_context->window_create(DisplayServerEnums::MAIN_WINDOW_ID, &wpd) != OK) { ERR_PRINT(vformat("Failed to create %s window.", rendering_driver)); memdelete(rendering_context); rendering_context = nullptr; @@ -138,18 +138,18 @@ } Size2i size = Size2i(layer.bounds.size.width, layer.bounds.size.height) * screen_get_max_scale(); - rendering_context->window_set_size(MAIN_WINDOW_ID, size.width, size.height); - rendering_context->window_set_vsync_mode(MAIN_WINDOW_ID, p_vsync_mode); + rendering_context->window_set_size(DisplayServerEnums::MAIN_WINDOW_ID, size.width, size.height); + rendering_context->window_set_vsync_mode(DisplayServerEnums::MAIN_WINDOW_ID, p_vsync_mode); rendering_device = memnew(RenderingDevice); - if (rendering_device->initialize(rendering_context, MAIN_WINDOW_ID) != OK) { + if (rendering_device->initialize(rendering_context, DisplayServerEnums::MAIN_WINDOW_ID) != OK) { rendering_device = nullptr; memdelete(rendering_context); rendering_context = nullptr; r_error = ERR_UNAVAILABLE; return; } - rendering_device->screen_create(MAIN_WINDOW_ID); + rendering_device->screen_create(DisplayServerEnums::MAIN_WINDOW_ID); RendererCompositorRD::make_current(); has_made_render_compositor_current = true; @@ -187,13 +187,13 @@ #if defined(RD_ENABLED) if (rendering_device) { - rendering_device->screen_free(MAIN_WINDOW_ID); + rendering_device->screen_free(DisplayServerEnums::MAIN_WINDOW_ID); memdelete(rendering_device); rendering_device = nullptr; } if (rendering_context) { - rendering_context->window_destroy(MAIN_WINDOW_ID); + rendering_context->window_destroy(DisplayServerEnums::MAIN_WINDOW_ID); memdelete(rendering_context); rendering_context = nullptr; } @@ -220,22 +220,22 @@ // MARK: Events -void DisplayServerAppleEmbedded::window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { window_resize_callback = p_callable; } -void DisplayServerAppleEmbedded::window_set_window_event_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { window_event_callback = p_callable; } -void DisplayServerAppleEmbedded::window_set_input_event_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { input_event_callback = p_callable; } -void DisplayServerAppleEmbedded::window_set_input_text_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { input_text_callback = p_callable; } -void DisplayServerAppleEmbedded::window_set_drop_files_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { // Probably not supported for iOS } @@ -255,7 +255,7 @@ _window_callback(input_text_callback, p_text); } -void DisplayServerAppleEmbedded::send_window_event(DisplayServer::WindowEvent p_event) const { +void DisplayServerAppleEmbedded::send_window_event(DisplayServerEnums::WindowEvent p_event) const { _window_callback(window_event_callback, int(p_event)); } @@ -354,34 +354,34 @@ // MARK: - -bool DisplayServerAppleEmbedded::has_feature(Feature p_feature) const { +bool DisplayServerAppleEmbedded::has_feature(DisplayServerEnums::Feature p_feature) const { switch (p_feature) { #ifndef DISABLE_DEPRECATED - case FEATURE_GLOBAL_MENU: { + case DisplayServerEnums::FEATURE_GLOBAL_MENU: { return (native_menu && native_menu->has_feature(NativeMenu::FEATURE_GLOBAL_MENU)); } break; #endif - // case FEATURE_CURSOR_SHAPE: - // case FEATURE_CUSTOM_CURSOR_SHAPE: - // case FEATURE_HIDPI: - // case FEATURE_ICON: - // case FEATURE_IME: - // case FEATURE_MOUSE: - // case FEATURE_MOUSE_WARP: - // case FEATURE_NATIVE_DIALOG: - // case FEATURE_NATIVE_DIALOG_INPUT: - // case FEATURE_NATIVE_DIALOG_FILE: - // case FEATURE_NATIVE_DIALOG_FILE_EXTRA: - // case FEATURE_NATIVE_DIALOG_FILE_MIME: - // case FEATURE_NATIVE_ICON: - // case FEATURE_WINDOW_TRANSPARENCY: - case FEATURE_CLIPBOARD: - case FEATURE_HDR_OUTPUT: - case FEATURE_KEEP_SCREEN_ON: - case FEATURE_ORIENTATION: - case FEATURE_TOUCHSCREEN: - case FEATURE_VIRTUAL_KEYBOARD: - case FEATURE_TEXT_TO_SPEECH: + // case DisplayServerEnums::FEATURE_CURSOR_SHAPE: + // case DisplayServerEnums::FEATURE_CUSTOM_CURSOR_SHAPE: + // case DisplayServerEnums::FEATURE_HIDPI: + // case DisplayServerEnums::FEATURE_ICON: + // case DisplayServerEnums::FEATURE_IME: + // case DisplayServerEnums::FEATURE_MOUSE: + // case DisplayServerEnums::FEATURE_MOUSE_WARP: + // case DisplayServerEnums::FEATURE_NATIVE_DIALOG: + // case DisplayServerEnums::FEATURE_NATIVE_DIALOG_INPUT: + // case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE: + // case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_EXTRA: + // case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_MIME: + // case DisplayServerEnums::FEATURE_NATIVE_ICON: + // case DisplayServerEnums::FEATURE_WINDOW_TRANSPARENCY: + case DisplayServerEnums::FEATURE_CLIPBOARD: + case DisplayServerEnums::FEATURE_HDR_OUTPUT: + case DisplayServerEnums::FEATURE_KEEP_SCREEN_ON: + case DisplayServerEnums::FEATURE_ORIENTATION: + case DisplayServerEnums::FEATURE_TOUCHSCREEN: + case DisplayServerEnums::FEATURE_VIRTUAL_KEYBOARD: + case DisplayServerEnums::FEATURE_TEXT_TO_SPEECH: return true; default: return false; @@ -529,26 +529,26 @@ return Rect2i(screen_get_position(p_screen), screen_get_size(p_screen)); } -Vector DisplayServerAppleEmbedded::get_window_list() const { - Vector list; - list.push_back(MAIN_WINDOW_ID); +Vector DisplayServerAppleEmbedded::get_window_list() const { + Vector list; + list.push_back(DisplayServerEnums::MAIN_WINDOW_ID); return list; } -DisplayServer::WindowID DisplayServerAppleEmbedded::get_window_at_screen_position(const Point2i &p_position) const { - return MAIN_WINDOW_ID; +DisplayServerEnums::WindowID DisplayServerAppleEmbedded::get_window_at_screen_position(const Point2i &p_position) const { + return DisplayServerEnums::MAIN_WINDOW_ID; } -int64_t DisplayServerAppleEmbedded::window_get_native_handle(HandleType p_handle_type, WindowID p_window) const { - ERR_FAIL_COND_V(p_window != MAIN_WINDOW_ID, 0); +int64_t DisplayServerAppleEmbedded::window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window) const { + ERR_FAIL_COND_V(p_window != DisplayServerEnums::MAIN_WINDOW_ID, 0); switch (p_handle_type) { - case DISPLAY_HANDLE: { + case DisplayServerEnums::DISPLAY_HANDLE: { return 0; // Not supported. } - case WINDOW_HANDLE: { + case DisplayServerEnums::WINDOW_HANDLE: { return (int64_t)GDTAppDelegateService.viewController; } - case WINDOW_VIEW: { + case DisplayServerEnums::WINDOW_VIEW: { return (int64_t)GDTAppDelegateService.viewController.godotView; } default: { @@ -557,109 +557,109 @@ } } -void DisplayServerAppleEmbedded::window_attach_instance_id(ObjectID p_instance, WindowID p_window) { +void DisplayServerAppleEmbedded::window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window) { window_attached_instance_id = p_instance; } -ObjectID DisplayServerAppleEmbedded::window_get_attached_instance_id(WindowID p_window) const { +ObjectID DisplayServerAppleEmbedded::window_get_attached_instance_id(DisplayServerEnums::WindowID p_window) const { return window_attached_instance_id; } -void DisplayServerAppleEmbedded::window_set_title(const String &p_title, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window) { // Probably not supported for iOS } -int DisplayServerAppleEmbedded::window_get_current_screen(WindowID p_window) const { - ERR_FAIL_COND_V(p_window != MAIN_WINDOW_ID, INVALID_SCREEN); +int DisplayServerAppleEmbedded::window_get_current_screen(DisplayServerEnums::WindowID p_window) const { + ERR_FAIL_COND_V(p_window != DisplayServerEnums::MAIN_WINDOW_ID, DisplayServerEnums::INVALID_SCREEN); return 0; } -void DisplayServerAppleEmbedded::window_set_current_screen(int p_screen, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window) { // Probably not supported for iOS } -Point2i DisplayServerAppleEmbedded::window_get_position(WindowID p_window) const { +Point2i DisplayServerAppleEmbedded::window_get_position(DisplayServerEnums::WindowID p_window) const { return Point2i(); } -Point2i DisplayServerAppleEmbedded::window_get_position_with_decorations(WindowID p_window) const { +Point2i DisplayServerAppleEmbedded::window_get_position_with_decorations(DisplayServerEnums::WindowID p_window) const { return Point2i(); } -void DisplayServerAppleEmbedded::window_set_position(const Point2i &p_position, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window) { // Probably not supported for single window iOS app } -void DisplayServerAppleEmbedded::window_set_transient(WindowID p_window, WindowID p_parent) { +void DisplayServerAppleEmbedded::window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) { // Probably not supported for iOS } -void DisplayServerAppleEmbedded::window_set_max_size(const Size2i p_size, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { // Probably not supported for iOS } -Size2i DisplayServerAppleEmbedded::window_get_max_size(WindowID p_window) const { +Size2i DisplayServerAppleEmbedded::window_get_max_size(DisplayServerEnums::WindowID p_window) const { return Size2i(); } -void DisplayServerAppleEmbedded::window_set_min_size(const Size2i p_size, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { // Probably not supported for iOS } -Size2i DisplayServerAppleEmbedded::window_get_min_size(WindowID p_window) const { +Size2i DisplayServerAppleEmbedded::window_get_min_size(DisplayServerEnums::WindowID p_window) const { return Size2i(); } -void DisplayServerAppleEmbedded::window_set_size(const Size2i p_size, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { // Probably not supported for iOS } -Size2i DisplayServerAppleEmbedded::window_get_size(WindowID p_window) const { +Size2i DisplayServerAppleEmbedded::window_get_size(DisplayServerEnums::WindowID p_window) const { CGRect viewBounds = GDTAppDelegateService.viewController.view.bounds; return Size2i(viewBounds.size.width, viewBounds.size.height) * screen_get_max_scale(); } -Size2i DisplayServerAppleEmbedded::window_get_size_with_decorations(WindowID p_window) const { +Size2i DisplayServerAppleEmbedded::window_get_size_with_decorations(DisplayServerEnums::WindowID p_window) const { return window_get_size(p_window); } -void DisplayServerAppleEmbedded::window_set_mode(WindowMode p_mode, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window) { // Probably not supported for iOS } -DisplayServer::WindowMode DisplayServerAppleEmbedded::window_get_mode(WindowID p_window) const { - return WindowMode::WINDOW_MODE_FULLSCREEN; +DisplayServerEnums::WindowMode DisplayServerAppleEmbedded::window_get_mode(DisplayServerEnums::WindowID p_window) const { + return DisplayServerEnums::WindowMode::WINDOW_MODE_FULLSCREEN; } -bool DisplayServerAppleEmbedded::window_is_maximize_allowed(WindowID p_window) const { +bool DisplayServerAppleEmbedded::window_is_maximize_allowed(DisplayServerEnums::WindowID p_window) const { return false; } -void DisplayServerAppleEmbedded::window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window) { // Probably not supported for iOS } -bool DisplayServerAppleEmbedded::window_get_flag(WindowFlags p_flag, WindowID p_window) const { +bool DisplayServerAppleEmbedded::window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window) const { return false; } -void DisplayServerAppleEmbedded::window_request_attention(WindowID p_window) { +void DisplayServerAppleEmbedded::window_request_attention(DisplayServerEnums::WindowID p_window) { // Probably not supported for iOS } -void DisplayServerAppleEmbedded::window_move_to_foreground(WindowID p_window) { +void DisplayServerAppleEmbedded::window_move_to_foreground(DisplayServerEnums::WindowID p_window) { // Probably not supported for iOS } -bool DisplayServerAppleEmbedded::window_is_focused(WindowID p_window) const { +bool DisplayServerAppleEmbedded::window_is_focused(DisplayServerEnums::WindowID p_window) const { return true; } float DisplayServerAppleEmbedded::screen_get_max_scale() const { - return screen_get_scale(SCREEN_OF_MAIN_WINDOW); + return screen_get_scale(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW); } -void DisplayServerAppleEmbedded::screen_set_orientation(DisplayServer::ScreenOrientation p_orientation, int p_screen) { +void DisplayServerAppleEmbedded::screen_set_orientation(DisplayServerEnums::ScreenOrientation p_orientation, int p_screen) { p_screen = _get_screen_index(p_screen); int screen_count = get_screen_count(); ERR_FAIL_INDEX(p_screen, screen_count); @@ -675,15 +675,15 @@ #endif } -DisplayServer::ScreenOrientation DisplayServerAppleEmbedded::screen_get_orientation(int p_screen) const { +DisplayServerEnums::ScreenOrientation DisplayServerAppleEmbedded::screen_get_orientation(int p_screen) const { p_screen = _get_screen_index(p_screen); int screen_count = get_screen_count(); - ERR_FAIL_INDEX_V(p_screen, screen_count, SCREEN_LANDSCAPE); + ERR_FAIL_INDEX_V(p_screen, screen_count, DisplayServerEnums::SCREEN_LANDSCAPE); return screen_orientation; } -bool DisplayServerAppleEmbedded::window_can_draw(WindowID p_window) const { +bool DisplayServerAppleEmbedded::window_can_draw(DisplayServerEnums::WindowID p_window) const { return true; } @@ -705,37 +705,37 @@ _FORCE_INLINE_ int _convert_utf32_offset_to_utf16(const String &p_existing_text, return limit; } -void DisplayServerAppleEmbedded::virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect, VirtualKeyboardType p_type, int p_max_length, int p_cursor_start, int p_cursor_end) { +void DisplayServerAppleEmbedded::virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect, DisplayServerEnums::VirtualKeyboardType p_type, int p_max_length, int p_cursor_start, int p_cursor_end) { NSString *existingString = [[NSString alloc] initWithUTF8String:p_existing_text.utf8().get_data()]; GDTAppDelegateService.viewController.keyboardView.keyboardType = UIKeyboardTypeDefault; GDTAppDelegateService.viewController.keyboardView.textContentType = nil; switch (p_type) { - case KEYBOARD_TYPE_DEFAULT: { + case DisplayServerEnums::KEYBOARD_TYPE_DEFAULT: { GDTAppDelegateService.viewController.keyboardView.keyboardType = UIKeyboardTypeDefault; } break; - case KEYBOARD_TYPE_MULTILINE: { + case DisplayServerEnums::KEYBOARD_TYPE_MULTILINE: { GDTAppDelegateService.viewController.keyboardView.keyboardType = UIKeyboardTypeDefault; } break; - case KEYBOARD_TYPE_NUMBER: { + case DisplayServerEnums::KEYBOARD_TYPE_NUMBER: { GDTAppDelegateService.viewController.keyboardView.keyboardType = UIKeyboardTypeNumberPad; } break; - case KEYBOARD_TYPE_NUMBER_DECIMAL: { + case DisplayServerEnums::KEYBOARD_TYPE_NUMBER_DECIMAL: { GDTAppDelegateService.viewController.keyboardView.keyboardType = UIKeyboardTypeDecimalPad; } break; - case KEYBOARD_TYPE_PHONE: { + case DisplayServerEnums::KEYBOARD_TYPE_PHONE: { GDTAppDelegateService.viewController.keyboardView.keyboardType = UIKeyboardTypePhonePad; GDTAppDelegateService.viewController.keyboardView.textContentType = UITextContentTypeTelephoneNumber; } break; - case KEYBOARD_TYPE_EMAIL_ADDRESS: { + case DisplayServerEnums::KEYBOARD_TYPE_EMAIL_ADDRESS: { GDTAppDelegateService.viewController.keyboardView.keyboardType = UIKeyboardTypeEmailAddress; GDTAppDelegateService.viewController.keyboardView.textContentType = UITextContentTypeEmailAddress; } break; - case KEYBOARD_TYPE_PASSWORD: { + case DisplayServerEnums::KEYBOARD_TYPE_PASSWORD: { GDTAppDelegateService.viewController.keyboardView.keyboardType = UIKeyboardTypeDefault; GDTAppDelegateService.viewController.keyboardView.textContentType = UITextContentTypePassword; } break; - case KEYBOARD_TYPE_URL: { + case DisplayServerEnums::KEYBOARD_TYPE_URL: { GDTAppDelegateService.viewController.keyboardView.keyboardType = UIKeyboardTypeWebSearch; GDTAppDelegateService.viewController.keyboardView.textContentType = UITextContentTypeURL; } break; @@ -794,7 +794,7 @@ _FORCE_INLINE_ int _convert_utf32_offset_to_utf16(const String &p_existing_text, #if defined(RD_ENABLED) if (rendering_context) { - rendering_context->window_set_size(MAIN_WINDOW_ID, size.x, size.y); + rendering_context->window_set_size(DisplayServerEnums::MAIN_WINDOW_ID, size.x, size.y); } #endif @@ -802,7 +802,7 @@ _FORCE_INLINE_ int _convert_utf32_offset_to_utf16(const String &p_existing_text, _window_callback(window_resize_callback, resize_rect); } -void DisplayServerAppleEmbedded::window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) if (rendering_context) { @@ -811,14 +811,14 @@ _FORCE_INLINE_ int _convert_utf32_offset_to_utf16(const String &p_existing_text, #endif } -DisplayServer::VSyncMode DisplayServerAppleEmbedded::window_get_vsync_mode(WindowID p_window) const { +DisplayServerEnums::VSyncMode DisplayServerAppleEmbedded::window_get_vsync_mode(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) if (rendering_context) { return rendering_context->window_get_vsync_mode(p_window); } #endif - return DisplayServer::VSYNC_ENABLED; + return DisplayServerEnums::VSYNC_ENABLED; } // MARK: - HDR / EDR @@ -830,15 +830,15 @@ _FORCE_INLINE_ int _convert_utf32_offset_to_utf16(const String &p_existing_text, } bool desired = edr_requested && _screen_hdr_is_supported(); - if (rendering_context->window_get_hdr_output_enabled(MAIN_WINDOW_ID) != desired) { - rendering_context->window_set_hdr_output_enabled(MAIN_WINDOW_ID, desired); + if (rendering_context->window_get_hdr_output_enabled(DisplayServerEnums::MAIN_WINDOW_ID) != desired) { + rendering_context->window_set_hdr_output_enabled(DisplayServerEnums::MAIN_WINDOW_ID, desired); } float reference_luminance = _calculate_current_reference_luminance(); - rendering_context->window_set_hdr_output_reference_luminance(MAIN_WINDOW_ID, reference_luminance); + rendering_context->window_set_hdr_output_reference_luminance(DisplayServerEnums::MAIN_WINDOW_ID, reference_luminance); float max_luminance = _screen_potential_edr_headroom() * hardware_reference_luminance_nits; - rendering_context->window_set_hdr_output_max_luminance(MAIN_WINDOW_ID, max_luminance); + rendering_context->window_set_hdr_output_max_luminance(DisplayServerEnums::MAIN_WINDOW_ID, max_luminance); #endif } @@ -846,7 +846,7 @@ _FORCE_INLINE_ int _convert_utf32_offset_to_utf16(const String &p_existing_text, _update_hdr_output(); } -bool DisplayServerAppleEmbedded::window_is_hdr_output_supported(WindowID p_window) const { +bool DisplayServerAppleEmbedded::window_is_hdr_output_supported(DisplayServerEnums::WindowID p_window) const { #if defined(RD_ENABLED) if (rendering_device && !rendering_device->has_feature(RenderingDevice::Features::SUPPORTS_HDR_OUTPUT)) { return false; @@ -855,7 +855,7 @@ _FORCE_INLINE_ int _convert_utf32_offset_to_utf16(const String &p_existing_text, return _screen_hdr_is_supported(); } -void DisplayServerAppleEmbedded::window_request_hdr_output(const bool p_enabled, WindowID p_window) { +void DisplayServerAppleEmbedded::window_request_hdr_output(const bool p_enabled, DisplayServerEnums::WindowID p_window) { #if defined(RD_ENABLED) ERR_FAIL_COND_MSG(p_enabled && rendering_device && !rendering_device->has_feature(RenderingDevice::Features::SUPPORTS_HDR_OUTPUT), "HDR output is not supported by the rendering device."); #endif @@ -864,11 +864,11 @@ _FORCE_INLINE_ int _convert_utf32_offset_to_utf16(const String &p_existing_text, _update_hdr_output(); } -bool DisplayServerAppleEmbedded::window_is_hdr_output_requested(WindowID p_window) const { +bool DisplayServerAppleEmbedded::window_is_hdr_output_requested(DisplayServerEnums::WindowID p_window) const { return edr_requested; } -bool DisplayServerAppleEmbedded::window_is_hdr_output_enabled(WindowID p_window) const { +bool DisplayServerAppleEmbedded::window_is_hdr_output_enabled(DisplayServerEnums::WindowID p_window) const { #if defined(RD_ENABLED) if (rendering_context) { return rendering_context->window_get_hdr_output_enabled(p_window); @@ -877,11 +877,11 @@ _FORCE_INLINE_ int _convert_utf32_offset_to_utf16(const String &p_existing_text, return false; } -void DisplayServerAppleEmbedded::window_set_hdr_output_reference_luminance(const float p_reference_luminance, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_hdr_output_reference_luminance(const float p_reference_luminance, DisplayServerEnums::WindowID p_window) { ERR_PRINT_ONCE("Manually setting reference white luminance is not supported on Apple devices, as they provide a user-facing brightness setting that directly controls reference white luminance."); } -float DisplayServerAppleEmbedded::window_get_hdr_output_reference_luminance(WindowID p_window) const { +float DisplayServerAppleEmbedded::window_get_hdr_output_reference_luminance(DisplayServerEnums::WindowID p_window) const { return -1.0f; // Always auto-adjusted by the OS on Apple platforms. } @@ -891,7 +891,7 @@ _FORCE_INLINE_ int _convert_utf32_offset_to_utf16(const String &p_existing_text, return potential * hardware_reference_luminance_nits / current; } -float DisplayServerAppleEmbedded::window_get_hdr_output_current_reference_luminance(WindowID p_window) const { +float DisplayServerAppleEmbedded::window_get_hdr_output_current_reference_luminance(DisplayServerEnums::WindowID p_window) const { #if defined(RD_ENABLED) if (rendering_context) { return rendering_context->window_get_hdr_output_reference_luminance(p_window); @@ -900,19 +900,19 @@ _FORCE_INLINE_ int _convert_utf32_offset_to_utf16(const String &p_existing_text, return 200.0f; } -void DisplayServerAppleEmbedded::window_set_hdr_output_max_luminance(const float p_max_luminance, WindowID p_window) { +void DisplayServerAppleEmbedded::window_set_hdr_output_max_luminance(const float p_max_luminance, DisplayServerEnums::WindowID p_window) { ERR_PRINT_ONCE("Manually setting max luminance is not supported on Apple embedded devices as they provide accurate max luminance values for their built-in screens."); } -float DisplayServerAppleEmbedded::window_get_hdr_output_max_luminance(WindowID p_window) const { +float DisplayServerAppleEmbedded::window_get_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window) const { return -1.0f; } -float DisplayServerAppleEmbedded::window_get_hdr_output_current_max_luminance(WindowID p_window) const { +float DisplayServerAppleEmbedded::window_get_hdr_output_current_max_luminance(DisplayServerEnums::WindowID p_window) const { return _screen_potential_edr_headroom() * hardware_reference_luminance_nits; } -float DisplayServerAppleEmbedded::window_get_output_max_linear_value(WindowID p_window) const { +float DisplayServerAppleEmbedded::window_get_output_max_linear_value(DisplayServerEnums::WindowID p_window) const { #if defined(RD_ENABLED) if (rendering_context) { return rendering_context->window_get_output_max_linear_value(p_window); diff --git a/drivers/apple_embedded/godot_view_controller.mm b/drivers/apple_embedded/godot_view_controller.mm index 67701631fe03..987e43aacaf9 100644 --- a/drivers/apple_embedded/godot_view_controller.mm +++ b/drivers/apple_embedded/godot_view_controller.mm @@ -281,10 +281,10 @@ - (BOOL)shouldAutorotate { return NO; } - switch (DisplayServerAppleEmbedded::get_singleton()->screen_get_orientation(DisplayServer::SCREEN_OF_MAIN_WINDOW)) { - case DisplayServer::SCREEN_SENSOR: - case DisplayServer::SCREEN_SENSOR_LANDSCAPE: - case DisplayServer::SCREEN_SENSOR_PORTRAIT: + switch (DisplayServerAppleEmbedded::get_singleton()->screen_get_orientation(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW)) { + case DisplayServerEnums::SCREEN_SENSOR: + case DisplayServerEnums::SCREEN_SENSOR_LANDSCAPE: + case DisplayServerEnums::SCREEN_SENSOR_PORTRAIT: return YES; default: return NO; @@ -296,24 +296,24 @@ - (UIInterfaceOrientationMask)supportedInterfaceOrientations { return UIInterfaceOrientationMaskAll; } - switch (DisplayServerAppleEmbedded::get_singleton()->screen_get_orientation(DisplayServer::SCREEN_OF_MAIN_WINDOW)) { - case DisplayServer::SCREEN_PORTRAIT: + switch (DisplayServerAppleEmbedded::get_singleton()->screen_get_orientation(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW)) { + case DisplayServerEnums::SCREEN_PORTRAIT: return UIInterfaceOrientationMaskPortrait; - case DisplayServer::SCREEN_REVERSE_LANDSCAPE: + case DisplayServerEnums::SCREEN_REVERSE_LANDSCAPE: if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad) { return UIInterfaceOrientationMaskLandscapeLeft; } else { return UIInterfaceOrientationMaskLandscapeRight; } - case DisplayServer::SCREEN_REVERSE_PORTRAIT: + case DisplayServerEnums::SCREEN_REVERSE_PORTRAIT: return UIInterfaceOrientationMaskPortraitUpsideDown; - case DisplayServer::SCREEN_SENSOR_LANDSCAPE: + case DisplayServerEnums::SCREEN_SENSOR_LANDSCAPE: return UIInterfaceOrientationMaskLandscape; - case DisplayServer::SCREEN_SENSOR_PORTRAIT: + case DisplayServerEnums::SCREEN_SENSOR_PORTRAIT: return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown; - case DisplayServer::SCREEN_SENSOR: + case DisplayServerEnums::SCREEN_SENSOR: return UIInterfaceOrientationMaskAll; - case DisplayServer::SCREEN_LANDSCAPE: + case DisplayServerEnums::SCREEN_LANDSCAPE: if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad) { return UIInterfaceOrientationMaskLandscapeRight; } else { diff --git a/drivers/apple_embedded/os_apple_embedded.mm b/drivers/apple_embedded/os_apple_embedded.mm index 8325b603217a..b1be6226f76a 100644 --- a/drivers/apple_embedded/os_apple_embedded.mm +++ b/drivers/apple_embedded/os_apple_embedded.mm @@ -761,7 +761,7 @@ Rect2 fit_keep_aspect_covered(const Vector2 &p_container, const Vector2 &p_rect) is_focused = false; if (DisplayServerAppleEmbedded::get_singleton()) { - DisplayServerAppleEmbedded::get_singleton()->send_window_event(DisplayServer::WINDOW_EVENT_FOCUS_OUT); + DisplayServerAppleEmbedded::get_singleton()->send_window_event(DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT); } if (OS::get_singleton()->get_main_loop()) { @@ -779,7 +779,7 @@ Rect2 fit_keep_aspect_covered(const Vector2 &p_container, const Vector2 &p_rect) is_focused = true; if (DisplayServerAppleEmbedded::get_singleton()) { - DisplayServerAppleEmbedded::get_singleton()->send_window_event(DisplayServer::WINDOW_EVENT_FOCUS_IN); + DisplayServerAppleEmbedded::get_singleton()->send_window_event(DisplayServerEnums::WINDOW_EVENT_FOCUS_IN); } if (OS::get_singleton()->get_main_loop()) { diff --git a/drivers/apple_embedded/tts_apple_embedded.h b/drivers/apple_embedded/tts_apple_embedded.h index 8d55079022d5..c3822da4644e 100644 --- a/drivers/apple_embedded/tts_apple_embedded.h +++ b/drivers/apple_embedded/tts_apple_embedded.h @@ -34,7 +34,6 @@ #include "core/templates/hash_map.h" #include "core/templates/list.h" #include "core/variant/array.h" -#include "servers/display/display_server.h" #if __has_include() #import @@ -42,12 +41,14 @@ #import #endif +struct TTSUtterance; + @interface GDTTTS : NSObject { bool speaking; HashMap ids; AVSpeechSynthesizer *av_synth; - List queue; + List queue; } - (void)pauseSpeaking; diff --git a/drivers/apple_embedded/tts_apple_embedded.mm b/drivers/apple_embedded/tts_apple_embedded.mm index a416914390d7..4736a0958c45 100644 --- a/drivers/apple_embedded/tts_apple_embedded.mm +++ b/drivers/apple_embedded/tts_apple_embedded.mm @@ -30,6 +30,8 @@ #import "tts_apple_embedded.h" +#include "servers/display/display_server.h" + @implementation GDTTTS - (id)init { @@ -54,18 +56,18 @@ - (void)speechSynthesizer:(AVSpeechSynthesizer *)av_synth willSpeakRangeOfSpeech pos++; } - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_BOUNDARY, ids[utterance], pos); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_BOUNDARY, ids[utterance], pos); } - (void)speechSynthesizer:(AVSpeechSynthesizer *)av_synth didCancelSpeechUtterance:(AVSpeechUtterance *)utterance { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, ids[utterance]); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, ids[utterance]); ids.erase(utterance); speaking = false; [self update]; } - (void)speechSynthesizer:(AVSpeechSynthesizer *)av_synth didFinishSpeechUtterance:(AVSpeechUtterance *)utterance { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_ENDED, ids[utterance]); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_ENDED, ids[utterance]); ids.erase(utterance); speaking = false; [self update]; @@ -73,7 +75,7 @@ - (void)speechSynthesizer:(AVSpeechSynthesizer *)av_synth didFinishSpeechUtteran - (void)update { if (!speaking && queue.size() > 0) { - DisplayServer::TTSUtterance &message = queue.front()->get(); + TTSUtterance &message = queue.front()->get(); AVSpeechUtterance *new_utterance = [[AVSpeechUtterance alloc] initWithString:[NSString stringWithUTF8String:message.text.utf8().get_data()]]; [new_utterance setVoice:[AVSpeechSynthesisVoice voiceWithIdentifier:[NSString stringWithUTF8String:message.voice.utf8().get_data()]]]; @@ -87,7 +89,7 @@ - (void)update { ids[new_utterance] = message.id; [av_synth speakUtterance:new_utterance]; - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_STARTED, message.id); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_STARTED, message.id); queue.pop_front(); speaking = true; @@ -103,8 +105,8 @@ - (void)resumeSpeaking { } - (void)stopSpeaking { - for (DisplayServer::TTSUtterance &message : queue) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, message.id); + for (TTSUtterance &message : queue) { + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, message.id); } queue.clear(); [av_synth stopSpeakingAtBoundary:AVSpeechBoundaryImmediate]; @@ -125,11 +127,11 @@ - (void)speak:(const String &)text voice:(const String &)voice volume:(int)volum } if (text.is_empty()) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, utterance_id); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, utterance_id); return; } - DisplayServer::TTSUtterance message; + TTSUtterance message; message.text = text; message.voice = voice; message.volume = CLAMP(volume, 0, 100); diff --git a/drivers/d3d12/rendering_context_driver_d3d12.cpp b/drivers/d3d12/rendering_context_driver_d3d12.cpp index e110ba8ed8a6..97724e01173e 100644 --- a/drivers/d3d12/rendering_context_driver_d3d12.cpp +++ b/drivers/d3d12/rendering_context_driver_d3d12.cpp @@ -278,13 +278,13 @@ void RenderingContextDriverD3D12::surface_set_size(SurfaceID p_surface, uint32_t surface->needs_resize = true; } -void RenderingContextDriverD3D12::surface_set_vsync_mode(SurfaceID p_surface, DisplayServer::VSyncMode p_vsync_mode) { +void RenderingContextDriverD3D12::surface_set_vsync_mode(SurfaceID p_surface, DisplayServerEnums::VSyncMode p_vsync_mode) { Surface *surface = (Surface *)(p_surface); surface->vsync_mode = p_vsync_mode; surface->needs_resize = true; } -DisplayServer::VSyncMode RenderingContextDriverD3D12::surface_get_vsync_mode(SurfaceID p_surface) const { +DisplayServerEnums::VSyncMode RenderingContextDriverD3D12::surface_get_vsync_mode(SurfaceID p_surface) const { Surface *surface = (Surface *)(p_surface); return surface->vsync_mode; } diff --git a/drivers/d3d12/rendering_context_driver_d3d12.h b/drivers/d3d12/rendering_context_driver_d3d12.h index 7cc8a0da88ca..317907776e2e 100644 --- a/drivers/d3d12/rendering_context_driver_d3d12.h +++ b/drivers/d3d12/rendering_context_driver_d3d12.h @@ -34,7 +34,7 @@ #include "core/string/ustring.h" #include "core/templates/rid_owner.h" #include "rendering_device_driver_d3d12.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #include "servers/rendering/rendering_context_driver.h" #if !defined(_MSC_VER) && !defined(__REQUIRED_RPCNDR_H_VERSION__) @@ -92,8 +92,8 @@ class RenderingContextDriverD3D12 : public RenderingContextDriver { virtual void driver_free(RenderingDeviceDriver *p_driver) override; virtual SurfaceID surface_create(const void *p_platform_data) override; virtual void surface_set_size(SurfaceID p_surface, uint32_t p_width, uint32_t p_height) override; - virtual void surface_set_vsync_mode(SurfaceID p_surface, DisplayServer::VSyncMode p_vsync_mode) override; - virtual DisplayServer::VSyncMode surface_get_vsync_mode(SurfaceID p_surface) const override; + virtual void surface_set_vsync_mode(SurfaceID p_surface, DisplayServerEnums::VSyncMode p_vsync_mode) override; + virtual DisplayServerEnums::VSyncMode surface_get_vsync_mode(SurfaceID p_surface) const override; virtual void surface_set_hdr_output_enabled(SurfaceID p_surface, bool p_enabled) override; virtual bool surface_get_hdr_output_enabled(SurfaceID p_surface) const override; virtual void surface_set_hdr_output_reference_luminance(SurfaceID p_surface, float p_reference_luminance) override; @@ -120,7 +120,7 @@ class RenderingContextDriverD3D12 : public RenderingContextDriver { HWND hwnd = nullptr; uint32_t width = 0; uint32_t height = 0; - DisplayServer::VSyncMode vsync_mode = DisplayServer::VSYNC_ENABLED; + DisplayServerEnums::VSyncMode vsync_mode = DisplayServerEnums::VSYNC_ENABLED; bool needs_resize = false; bool hdr_output = false; diff --git a/drivers/d3d12/rendering_device_driver_d3d12.cpp b/drivers/d3d12/rendering_device_driver_d3d12.cpp index 4fce88100554..56f42c60cecb 100644 --- a/drivers/d3d12/rendering_device_driver_d3d12.cpp +++ b/drivers/d3d12/rendering_device_driver_d3d12.cpp @@ -32,8 +32,11 @@ #include "d3d12_hooks.h" +#include "core/config/engine.h" #include "core/config/project_settings.h" #include "core/io/marshalls.h" +#include "core/os/os.h" + #include "thirdparty/zlib/zlib.h" #include "d3d12_godot_nir_bridge.h" @@ -2793,20 +2796,20 @@ Error RenderingDeviceDriverD3D12::swap_chain_resize(CommandQueueID p_cmd_queue, UINT present_flags = 0; UINT creation_flags = 0; switch (surface->vsync_mode) { - case DisplayServer::VSYNC_MAILBOX: { + case DisplayServerEnums::VSYNC_MAILBOX: { sync_interval = 1; present_flags = DXGI_PRESENT_RESTART; } break; - case DisplayServer::VSYNC_ENABLED: { + case DisplayServerEnums::VSYNC_ENABLED: { sync_interval = 1; present_flags = 0; } break; - case DisplayServer::VSYNC_DISABLED: { + case DisplayServerEnums::VSYNC_DISABLED: { sync_interval = 0; present_flags = is_tearing_supported ? DXGI_PRESENT_ALLOW_TEARING : 0; creation_flags = is_tearing_supported ? DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING : 0; } break; - case DisplayServer::VSYNC_ADAPTIVE: // Unsupported. + case DisplayServerEnums::VSYNC_ADAPTIVE: // Unsupported. default: sync_interval = 1; present_flags = 0; diff --git a/drivers/egl/egl_manager.cpp b/drivers/egl/egl_manager.cpp index 122bdad662b4..ae7a8256ca13 100644 --- a/drivers/egl/egl_manager.cpp +++ b/drivers/egl/egl_manager.cpp @@ -30,9 +30,11 @@ #include "egl_manager.h" +#include "core/config/engine.h" #include "core/crypto/crypto_core.h" #include "core/io/dir_access.h" #include "core/io/file_access.h" +#include "core/os/os.h" #ifdef WINDOWS_ENABLED #include "drivers/gles3/rasterizer_gles3.h" @@ -252,7 +254,7 @@ int EGLManager::display_get_native_visual_id(void *p_display) { return native_visual_id; } -Error EGLManager::window_create(DisplayServer::WindowID p_window_id, void *p_display, void *p_native_window, int p_width, int p_height) { +Error EGLManager::window_create(DisplayServerEnums::WindowID p_window_id, void *p_display, void *p_native_window, int p_width, int p_height) { int gldisplay_id = _get_gldisplay_id(p_display); ERR_FAIL_COND_V(gldisplay_id < 0, ERR_CANT_CREATE); @@ -320,7 +322,7 @@ Error EGLManager::window_create(DisplayServer::WindowID p_window_id, void *p_dis return OK; } -void EGLManager::window_destroy(DisplayServer::WindowID p_window_id) { +void EGLManager::window_destroy(DisplayServerEnums::WindowID p_window_id) { ERR_FAIL_INDEX(p_window_id, (int)windows.size()); GLWindow &glwindow = windows[p_window_id]; @@ -365,8 +367,8 @@ void EGLManager::swap_buffers() { eglSwapBuffers(current_display.egl_display, current_window->egl_surface); } -void EGLManager::window_make_current(DisplayServer::WindowID p_window_id) { - if (p_window_id == DisplayServer::INVALID_WINDOW_ID) { +void EGLManager::window_make_current(DisplayServerEnums::WindowID p_window_id) { + if (p_window_id == DisplayServerEnums::INVALID_WINDOW_ID) { return; } @@ -408,7 +410,7 @@ bool EGLManager::is_using_vsync() const { return use_vsync; } -EGLContext EGLManager::get_context(DisplayServer::WindowID p_window_id) { +EGLContext EGLManager::get_context(DisplayServerEnums::WindowID p_window_id) { GLWindow &glwindow = windows[p_window_id]; if (!glwindow.initialized) { @@ -420,7 +422,7 @@ EGLContext EGLManager::get_context(DisplayServer::WindowID p_window_id) { return display.egl_context; } -EGLDisplay EGLManager::get_display(DisplayServer::WindowID p_window_id) { +EGLDisplay EGLManager::get_display(DisplayServerEnums::WindowID p_window_id) { GLWindow &glwindow = windows[p_window_id]; if (!glwindow.initialized) { @@ -432,7 +434,7 @@ EGLDisplay EGLManager::get_display(DisplayServer::WindowID p_window_id) { return display.egl_display; } -EGLConfig EGLManager::get_config(DisplayServer::WindowID p_window_id) { +EGLConfig EGLManager::get_config(DisplayServerEnums::WindowID p_window_id) { GLWindow &glwindow = windows[p_window_id]; if (!glwindow.initialized) { diff --git a/drivers/egl/egl_manager.h b/drivers/egl/egl_manager.h index 7fe5f916cca1..6c4721a8b3e3 100644 --- a/drivers/egl/egl_manager.h +++ b/drivers/egl/egl_manager.h @@ -36,7 +36,7 @@ #include "platform_gl.h" #include "core/templates/local_vector.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" class EGLManager { private: @@ -95,21 +95,21 @@ class EGLManager { int display_get_native_visual_id(void *p_display); Error open_display(void *p_display); - Error window_create(DisplayServer::WindowID p_window_id, void *p_display, void *p_native_window, int p_width, int p_height); + Error window_create(DisplayServerEnums::WindowID p_window_id, void *p_display, void *p_native_window, int p_width, int p_height); - void window_destroy(DisplayServer::WindowID p_window_id); + void window_destroy(DisplayServerEnums::WindowID p_window_id); void release_current(); void swap_buffers(); - void window_make_current(DisplayServer::WindowID p_window_id); + void window_make_current(DisplayServerEnums::WindowID p_window_id); void set_use_vsync(bool p_use); bool is_using_vsync() const; - EGLContext get_context(DisplayServer::WindowID p_window_id); - EGLDisplay get_display(DisplayServer::WindowID p_window_id); - EGLConfig get_config(DisplayServer::WindowID p_window_id); + EGLContext get_context(DisplayServerEnums::WindowID p_window_id); + EGLDisplay get_display(DisplayServerEnums::WindowID p_window_id); + EGLConfig get_config(DisplayServerEnums::WindowID p_window_id); Error initialize(void *p_native_display = nullptr); diff --git a/drivers/gles3/rasterizer_gles3.cpp b/drivers/gles3/rasterizer_gles3.cpp index 7d762942bd91..0abfd02b3168 100644 --- a/drivers/gles3/rasterizer_gles3.cpp +++ b/drivers/gles3/rasterizer_gles3.cpp @@ -36,6 +36,7 @@ #include "core/io/dir_access.h" #include "core/io/image.h" #include "core/os/os.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_types.h" @@ -367,7 +368,7 @@ RasterizerGLES3::RasterizerGLES3() { RasterizerGLES3::~RasterizerGLES3() { } -void RasterizerGLES3::_blit_render_target_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen &p_blit, bool p_first) { +void RasterizerGLES3::_blit_render_target_to_screen(DisplayServerEnums::WindowID p_screen, const RenderingServerTypes::BlitToScreen &p_blit, bool p_first) { GLES3::RenderTarget *rt = GLES3::TextureStorage::get_singleton()->get_render_target(p_blit.render_target); ERR_FAIL_NULL(rt); @@ -442,7 +443,7 @@ void RasterizerGLES3::_blit_render_target_to_screen(DisplayServer::WindowID p_sc } // is this p_screen useless in a multi window environment? -void RasterizerGLES3::blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) { +void RasterizerGLES3::blit_render_targets_to_screen(DisplayServerEnums::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) { for (int i = 0; i < p_amount; i++) { _blit_render_target_to_screen(p_screen, p_render_targets[i], i == 0); } diff --git a/drivers/gles3/rasterizer_gles3.h b/drivers/gles3/rasterizer_gles3.h index 18abb214e58c..24ab9de92267 100644 --- a/drivers/gles3/rasterizer_gles3.h +++ b/drivers/gles3/rasterizer_gles3.h @@ -32,6 +32,7 @@ #ifdef GLES3_ENABLED +#include "core/os/os.h" #include "drivers/gles3/effects/copy_effects.h" #include "drivers/gles3/effects/cubemap_filter.h" #include "drivers/gles3/effects/feed_effects.h" @@ -81,7 +82,7 @@ class RasterizerGLES3 : public RendererCompositor { RasterizerSceneGLES3 *scene = nullptr; static RasterizerGLES3 *singleton; - void _blit_render_target_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen &p_blit, bool p_first = true); + void _blit_render_target_to_screen(DisplayServerEnums::WindowID p_screen, const RenderingServerTypes::BlitToScreen &p_blit, bool p_first = true); public: RendererUtilities *get_utilities() { return utilities; } @@ -100,7 +101,7 @@ class RasterizerGLES3 : public RendererCompositor { void initialize(); void begin_frame(double frame_step); - void blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount); + void blit_render_targets_to_screen(DisplayServerEnums::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount); bool is_opengl() { return true; } void gl_end_frame(bool p_swap_buffers); diff --git a/drivers/gles3/storage/texture_storage.cpp b/drivers/gles3/storage/texture_storage.cpp index c30f3b7dd2e6..f6045abe9645 100644 --- a/drivers/gles3/storage/texture_storage.cpp +++ b/drivers/gles3/storage/texture_storage.cpp @@ -32,6 +32,7 @@ #ifdef GLES3_ENABLED +#include "core/config/engine.h" #include "drivers/gles3/effects/copy_effects.h" #include "drivers/gles3/rasterizer_gles3.h" #include "drivers/gles3/rasterizer_util_gles3.h" diff --git a/drivers/gles3/storage/utilities.cpp b/drivers/gles3/storage/utilities.cpp index dd66861dd530..ea38e9a472a3 100644 --- a/drivers/gles3/storage/utilities.cpp +++ b/drivers/gles3/storage/utilities.cpp @@ -32,6 +32,8 @@ #ifdef GLES3_ENABLED +#include "core/config/engine.h" +#include "core/os/os.h" #include "drivers/gles3/rasterizer_util_gles3.h" #include "drivers/gles3/storage/config.h" #include "drivers/gles3/storage/light_storage.h" diff --git a/drivers/metal/metal_device_properties.cpp b/drivers/metal/metal_device_properties.cpp index 2fb20117895a..7b62876d8454 100644 --- a/drivers/metal/metal_device_properties.cpp +++ b/drivers/metal/metal_device_properties.cpp @@ -52,6 +52,7 @@ #include "metal_utils.h" +#include "core/os/os.h" #include "servers/rendering/renderer_rd/effects/metal_fx.h" #include diff --git a/drivers/metal/rendering_context_driver_metal.cpp b/drivers/metal/rendering_context_driver_metal.cpp index b1a2c436c5b2..e8e458188905 100644 --- a/drivers/metal/rendering_context_driver_metal.cpp +++ b/drivers/metal/rendering_context_driver_metal.cpp @@ -34,6 +34,7 @@ #include "metal_objects_shared.h" #include "rendering_device_driver_metal3.h" +#include "core/os/os.h" #include "core/templates/sort_array.h" #include @@ -138,12 +139,12 @@ class API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) SurfaceLayer : public Re #if TARGET_OS_OSX // Display sync is only supported on macOS. switch (vsync_mode) { - case DisplayServer::VSYNC_MAILBOX: - case DisplayServer::VSYNC_ADAPTIVE: - case DisplayServer::VSYNC_ENABLED: + case DisplayServerEnums::VSYNC_MAILBOX: + case DisplayServerEnums::VSYNC_ADAPTIVE: + case DisplayServerEnums::VSYNC_ENABLED: layer->setDisplaySyncEnabled(true); break; - case DisplayServer::VSYNC_DISABLED: + case DisplayServerEnums::VSYNC_DISABLED: layer->setDisplaySyncEnabled(false); break; } @@ -212,7 +213,7 @@ class API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) SurfaceLayer : public Re count--; front = (front + 1) % frame_buffers.size(); - if (vsync_mode != DisplayServer::VSYNC_DISABLED) { + if (vsync_mode != DisplayServerEnums::VSYNC_DISABLED) { p_cmd_buffer->get_command_buffer()->presentDrawableAfterMinimumDuration(drawable, present_minimum_duration); } else { p_cmd_buffer->get_command_buffer()->presentDrawable(drawable); @@ -385,7 +386,7 @@ void RenderingContextDriverMetal::surface_set_size(SurfaceID p_surface, uint32_t surface->needs_resize = true; } -void RenderingContextDriverMetal::surface_set_vsync_mode(SurfaceID p_surface, DisplayServer::VSyncMode p_vsync_mode) { +void RenderingContextDriverMetal::surface_set_vsync_mode(SurfaceID p_surface, DisplayServerEnums::VSyncMode p_vsync_mode) { Surface *surface = (Surface *)(p_surface); if (surface->vsync_mode == p_vsync_mode) { return; @@ -394,7 +395,7 @@ void RenderingContextDriverMetal::surface_set_vsync_mode(SurfaceID p_surface, Di surface->needs_resize = true; } -DisplayServer::VSyncMode RenderingContextDriverMetal::surface_get_vsync_mode(SurfaceID p_surface) const { +DisplayServerEnums::VSyncMode RenderingContextDriverMetal::surface_get_vsync_mode(SurfaceID p_surface) const { Surface *surface = (Surface *)(p_surface); return surface->vsync_mode; } diff --git a/drivers/metal/rendering_context_driver_metal.h b/drivers/metal/rendering_context_driver_metal.h index d33a87b5d62f..d417fa8ba87b 100644 --- a/drivers/metal/rendering_context_driver_metal.h +++ b/drivers/metal/rendering_context_driver_metal.h @@ -58,8 +58,8 @@ class API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) RenderingContextDriverMe void driver_free(RenderingDeviceDriver *p_driver) final override; SurfaceID surface_create(const void *p_platform_data) final override; void surface_set_size(SurfaceID p_surface, uint32_t p_width, uint32_t p_height) final override; - void surface_set_vsync_mode(SurfaceID p_surface, DisplayServer::VSyncMode p_vsync_mode) final override; - DisplayServer::VSyncMode surface_get_vsync_mode(SurfaceID p_surface) const final override; + void surface_set_vsync_mode(SurfaceID p_surface, DisplayServerEnums::VSyncMode p_vsync_mode) final override; + DisplayServerEnums::VSyncMode surface_get_vsync_mode(SurfaceID p_surface) const final override; virtual void surface_set_hdr_output_enabled(SurfaceID p_surface, bool p_enabled) final override; virtual bool surface_get_hdr_output_enabled(SurfaceID p_surface) const final override; virtual void surface_set_hdr_output_reference_luminance(SurfaceID p_surface, float p_reference_luminance) final override; @@ -90,7 +90,7 @@ class API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0)) RenderingContextDriverMe public: uint32_t width = 0; uint32_t height = 0; - DisplayServer::VSyncMode vsync_mode = DisplayServer::VSYNC_ENABLED; + DisplayServerEnums::VSyncMode vsync_mode = DisplayServerEnums::VSYNC_ENABLED; double present_minimum_duration = 0.0; MTL::PixelFormat pixel_format = MTL::PixelFormatBGRA8Unorm; diff --git a/drivers/metal/rendering_device_driver_metal.cpp b/drivers/metal/rendering_device_driver_metal.cpp index 61fdcfcd0bbf..e5ec71045ec1 100644 --- a/drivers/metal/rendering_device_driver_metal.cpp +++ b/drivers/metal/rendering_device_driver_metal.cpp @@ -56,6 +56,7 @@ #include "core/config/project_settings.h" #include "core/io/marshalls.h" +#include "core/os/os.h" #include "core/string/ustring.h" #include "core/templates/hash_map.h" #include "drivers/apple/foundation_helpers.h" diff --git a/drivers/metal/rendering_device_driver_metal3.cpp b/drivers/metal/rendering_device_driver_metal3.cpp index 2aec81478d9a..2fc0861a898f 100644 --- a/drivers/metal/rendering_device_driver_metal3.cpp +++ b/drivers/metal/rendering_device_driver_metal3.cpp @@ -34,6 +34,7 @@ #include "rendering_context_driver_metal.h" #include "core/config/project_settings.h" +#include "core/os/os.h" #include "core/string/ustring.h" namespace MTL3 { @@ -243,7 +244,7 @@ Error RenderingDeviceDriverMetal::_execute_and_present_barriers(CommandQueueID p struct DrawRequest { NS::SharedPtr drawable; - DisplayServer::VSyncMode vsync_mode; + DisplayServerEnums::VSyncMode vsync_mode; double duration; }; @@ -268,7 +269,7 @@ Error RenderingDeviceDriverMetal::_execute_and_present_barriers(CommandQueueID p cb->addCompletedHandler([drawables = std::move(drawables)](MTL::CommandBuffer *) { for (const DrawRequest &dr : drawables) { switch (dr.vsync_mode) { - case DisplayServer::VSYNC_DISABLED: { + case DisplayServerEnums::VSYNC_DISABLED: { dr.drawable->present(); } break; default: { diff --git a/drivers/metal/rendering_shader_container_metal.cpp b/drivers/metal/rendering_shader_container_metal.cpp index 1bcca37442aa..daf1202195f8 100644 --- a/drivers/metal/rendering_shader_container_metal.cpp +++ b/drivers/metal/rendering_shader_container_metal.cpp @@ -34,6 +34,7 @@ #include "core/io/file_access.h" #include "core/io/marshalls.h" +#include "core/os/os.h" #include "core/templates/fixed_vector.h" #include "thirdparty/spirv-reflect/spirv_reflect.h" diff --git a/drivers/vulkan/rendering_context_driver_vulkan.cpp b/drivers/vulkan/rendering_context_driver_vulkan.cpp index 9db37b330522..f12796486d72 100644 --- a/drivers/vulkan/rendering_context_driver_vulkan.cpp +++ b/drivers/vulkan/rendering_context_driver_vulkan.cpp @@ -34,7 +34,9 @@ #include "vk_enum_string_helper.h" +#include "core/config/engine.h" #include "core/config/project_settings.h" +#include "core/os/os.h" #include "core/version.h" #include "rendering_device_driver_vulkan.h" @@ -983,13 +985,13 @@ void RenderingContextDriverVulkan::surface_set_size(SurfaceID p_surface, uint32_ surface->needs_resize = true; } -void RenderingContextDriverVulkan::surface_set_vsync_mode(SurfaceID p_surface, DisplayServer::VSyncMode p_vsync_mode) { +void RenderingContextDriverVulkan::surface_set_vsync_mode(SurfaceID p_surface, DisplayServerEnums::VSyncMode p_vsync_mode) { Surface *surface = (Surface *)(p_surface); surface->vsync_mode = p_vsync_mode; surface->needs_resize = true; } -DisplayServer::VSyncMode RenderingContextDriverVulkan::surface_get_vsync_mode(SurfaceID p_surface) const { +DisplayServerEnums::VSyncMode RenderingContextDriverVulkan::surface_get_vsync_mode(SurfaceID p_surface) const { Surface *surface = (Surface *)(p_surface); return surface->vsync_mode; } diff --git a/drivers/vulkan/rendering_context_driver_vulkan.h b/drivers/vulkan/rendering_context_driver_vulkan.h index 562c858e7fe4..a3c74b3bec8d 100644 --- a/drivers/vulkan/rendering_context_driver_vulkan.h +++ b/drivers/vulkan/rendering_context_driver_vulkan.h @@ -32,6 +32,8 @@ #ifdef VULKAN_ENABLED +#include "core/templates/hash_set.h" +#include "core/templates/local_vector.h" #include "servers/rendering/rendering_context_driver.h" #if defined(DEBUG_ENABLED) || defined(DEV_ENABLED) @@ -136,8 +138,8 @@ class RenderingContextDriverVulkan : public RenderingContextDriver { virtual void driver_free(RenderingDeviceDriver *p_driver) override; virtual SurfaceID surface_create(const void *p_platform_data) override; virtual void surface_set_size(SurfaceID p_surface, uint32_t p_width, uint32_t p_height) override; - virtual void surface_set_vsync_mode(SurfaceID p_surface, DisplayServer::VSyncMode p_vsync_mode) override; - virtual DisplayServer::VSyncMode surface_get_vsync_mode(SurfaceID p_surface) const override; + virtual void surface_set_vsync_mode(SurfaceID p_surface, DisplayServerEnums::VSyncMode p_vsync_mode) override; + virtual DisplayServerEnums::VSyncMode surface_get_vsync_mode(SurfaceID p_surface) const override; virtual void surface_set_hdr_output_enabled(SurfaceID p_surface, bool p_enabled) override; virtual bool surface_get_hdr_output_enabled(SurfaceID p_surface) const override; virtual void surface_set_hdr_output_reference_luminance(SurfaceID p_surface, float p_reference_luminance) override; @@ -160,7 +162,7 @@ class RenderingContextDriverVulkan : public RenderingContextDriver { VkSurfaceKHR vk_surface = VK_NULL_HANDLE; uint32_t width = 0; uint32_t height = 0; - DisplayServer::VSyncMode vsync_mode = DisplayServer::VSYNC_ENABLED; + DisplayServerEnums::VSyncMode vsync_mode = DisplayServerEnums::VSYNC_ENABLED; bool needs_resize = false; bool hdr_output = false; diff --git a/drivers/vulkan/rendering_device_driver_vulkan.cpp b/drivers/vulkan/rendering_device_driver_vulkan.cpp index 13b9b40cb91d..6d92216bc622 100644 --- a/drivers/vulkan/rendering_device_driver_vulkan.cpp +++ b/drivers/vulkan/rendering_device_driver_vulkan.cpp @@ -30,8 +30,10 @@ #include "rendering_device_driver_vulkan.h" +#include "core/config/engine.h" #include "core/config/project_settings.h" #include "core/io/marshalls.h" +#include "core/os/os.h" #include "core/templates/fixed_vector.h" #include "vulkan_hooks.h" @@ -3627,19 +3629,19 @@ Error RenderingDeviceDriverVulkan::swap_chain_resize(CommandQueueID p_cmd_queue, VkPresentModeKHR present_mode = VkPresentModeKHR::VK_PRESENT_MODE_FIFO_KHR; String present_mode_name = "Enabled"; switch (surface->vsync_mode) { - case DisplayServer::VSYNC_MAILBOX: + case DisplayServerEnums::VSYNC_MAILBOX: present_mode = VK_PRESENT_MODE_MAILBOX_KHR; present_mode_name = "Mailbox"; break; - case DisplayServer::VSYNC_ADAPTIVE: + case DisplayServerEnums::VSYNC_ADAPTIVE: present_mode = VK_PRESENT_MODE_FIFO_RELAXED_KHR; present_mode_name = "Adaptive"; break; - case DisplayServer::VSYNC_ENABLED: + case DisplayServerEnums::VSYNC_ENABLED: present_mode = VK_PRESENT_MODE_FIFO_KHR; present_mode_name = "Enabled"; break; - case DisplayServer::VSYNC_DISABLED: + case DisplayServerEnums::VSYNC_DISABLED: present_mode = VK_PRESENT_MODE_IMMEDIATE_KHR; present_mode_name = "Disabled"; break; @@ -3649,7 +3651,7 @@ Error RenderingDeviceDriverVulkan::swap_chain_resize(CommandQueueID p_cmd_queue, if (!present_mode_available) { // Present mode is not available, fall back to FIFO which is guaranteed to be supported. WARN_PRINT(vformat("The requested V-Sync mode %s is not available. Falling back to V-Sync mode Enabled.", present_mode_name)); - surface->vsync_mode = DisplayServer::VSYNC_ENABLED; + surface->vsync_mode = DisplayServerEnums::VSYNC_ENABLED; present_mode = VkPresentModeKHR::VK_PRESENT_MODE_FIFO_KHR; } diff --git a/drivers/vulkan/rendering_device_driver_vulkan.h b/drivers/vulkan/rendering_device_driver_vulkan.h index fa8d40b9caa7..3b07d68180ba 100644 --- a/drivers/vulkan/rendering_device_driver_vulkan.h +++ b/drivers/vulkan/rendering_device_driver_vulkan.h @@ -47,6 +47,8 @@ #include "drivers/vulkan/godot_vulkan.h" +class FileAccess; + // Design principles: // - Vulkan structs are zero-initialized and fields not requiring a non-zero value are omitted (except in cases where expresivity reasons apply). class RenderingDeviceDriverVulkan : public RenderingDeviceDriver { diff --git a/editor/animation/animation_player_editor_plugin.cpp b/editor/animation/animation_player_editor_plugin.cpp index 8fcfd3bc1338..dc0302fa535b 100644 --- a/editor/animation/animation_player_editor_plugin.cpp +++ b/editor/animation/animation_player_editor_plugin.cpp @@ -53,6 +53,7 @@ #include "scene/main/window.h" #include "scene/resources/animation.h" #include "scene/resources/image_texture.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" /////////////////////////////////// @@ -1715,7 +1716,7 @@ void AnimationPlayerEditor::_editor_visibility_changed() { bool AnimationPlayerEditor::_are_onion_layers_valid() { ERR_FAIL_COND_V(!onion.past && !onion.future, false); - Size2 capture_size = DisplayServer::get_singleton()->window_get_size(DisplayServer::MAIN_WINDOW_ID); + Size2 capture_size = DisplayServer::get_singleton()->window_get_size(DisplayServerEnums::MAIN_WINDOW_ID); return onion.captures.size() == onion.get_capture_count() && onion.capture_size == capture_size; } @@ -1723,7 +1724,7 @@ void AnimationPlayerEditor::_allocate_onion_layers() { _free_onion_layers(); int captures = onion.get_capture_count(); - Size2 capture_size = DisplayServer::get_singleton()->window_get_size(DisplayServer::MAIN_WINDOW_ID); + Size2 capture_size = DisplayServer::get_singleton()->window_get_size(DisplayServerEnums::MAIN_WINDOW_ID); onion.captures.resize(captures); onion.captures_valid.resize(captures); @@ -1834,8 +1835,8 @@ void AnimationPlayerEditor::_prepare_onion_layers_2_prolog() { // Tweak the root viewport to ensure it's rendered before our target. RID root_vp = get_tree()->get_root()->get_viewport_rid(); - onion.temp.screen_rect = Rect2(Vector2(), DisplayServer::get_singleton()->window_get_size(DisplayServer::MAIN_WINDOW_ID)); - RS::get_singleton()->viewport_attach_to_screen(root_vp, Rect2(), DisplayServer::INVALID_WINDOW_ID); + onion.temp.screen_rect = Rect2(Vector2(), DisplayServer::get_singleton()->window_get_size(DisplayServerEnums::MAIN_WINDOW_ID)); + RS::get_singleton()->viewport_attach_to_screen(root_vp, Rect2(), DisplayServerEnums::INVALID_WINDOW_ID); RS::get_singleton()->viewport_set_update_mode(root_vp, RSE::VIEWPORT_UPDATE_ALWAYS); RID present_rid; @@ -1921,7 +1922,7 @@ void AnimationPlayerEditor::_prepare_onion_layers_2_epilog() { // Restore root viewport. RID root_vp = get_tree()->get_root()->get_viewport_rid(); RS::get_singleton()->viewport_set_parent_viewport(root_vp, RID()); - RS::get_singleton()->viewport_attach_to_screen(root_vp, onion.temp.screen_rect, DisplayServer::MAIN_WINDOW_ID); + RS::get_singleton()->viewport_attach_to_screen(root_vp, onion.temp.screen_rect, DisplayServerEnums::MAIN_WINDOW_ID); RS::get_singleton()->viewport_set_update_mode(root_vp, RSE::VIEWPORT_UPDATE_WHEN_VISIBLE); // Restore animation state. diff --git a/editor/debugger/editor_debugger_node.cpp b/editor/debugger/editor_debugger_node.cpp index 8aa97de77967..2d0c2634bf1e 100644 --- a/editor/debugger/editor_debugger_node.cpp +++ b/editor/debugger/editor_debugger_node.cpp @@ -51,6 +51,7 @@ #include "scene/gui/menu_button.h" #include "scene/gui/tab_container.h" #include "scene/resources/packed_scene.h" +#include "servers/display/display_server.h" template void _for_all(TabContainer *p_node, const Func &p_func) { diff --git a/editor/doc/editor_help.cpp b/editor/doc/editor_help.cpp index d1a8ea7cfb20..b9550e76937a 100644 --- a/editor/doc/editor_help.cpp +++ b/editor/doc/editor_help.cpp @@ -53,6 +53,7 @@ #include "editor/settings/editor_settings.h" #include "editor/themes/editor_scale.h" #include "scene/gui/line_edit.h" +#include "servers/display/display_server.h" #include "modules/modules_enabled.gen.h" // For gdscript, mono. @@ -4741,7 +4742,7 @@ void EditorHelpBitTooltip::popup_under_position(const Point2 &p_point) { vr = window->get_usable_parent_rect(); } - if (!DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SELF_FITTING_WINDOWS) || is_embedded()) { + if (!DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SELF_FITTING_WINDOWS) || is_embedded()) { if (r.size.x + r.position.x > vr.size.x + vr.position.x) { // Place it in the opposite direction. If it fails, just hug the border. r.position.x = p_point.x - r.size.x - tooltip_offset.x; diff --git a/editor/doc/editor_help_search.cpp b/editor/doc/editor_help_search.cpp index d018f59c4e98..6e749e34b00b 100644 --- a/editor/doc/editor_help_search.cpp +++ b/editor/doc/editor_help_search.cpp @@ -41,6 +41,7 @@ #include "editor/themes/editor_theme_manager.h" #include "scene/gui/line_edit.h" #include "scene/gui/margin_container.h" +#include "servers/display/display_server.h" bool EditorHelpSearch::_all_terms_in_name(const Vector &p_terms, const String &p_name) const { for (int i = 0; i < p_terms.size(); i++) { @@ -197,13 +198,13 @@ void EditorHelpSearch::_confirmed() { void EditorHelpSearch::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_NATIVE_HELP)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_NATIVE_HELP)) { DisplayServer::get_singleton()->help_set_search_callbacks(callable_mp(this, &EditorHelpSearch::_native_search_cb), callable_mp(this, &EditorHelpSearch::_native_action_cb)); } } break; case NOTIFICATION_EXIT_TREE: { - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_NATIVE_HELP)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_NATIVE_HELP)) { DisplayServer::get_singleton()->help_set_search_callbacks(); } } break; diff --git a/editor/docks/editor_dock_manager.cpp b/editor/docks/editor_dock_manager.cpp index 89bae57e8e01..4d27ba3cec5b 100644 --- a/editor/docks/editor_dock_manager.cpp +++ b/editor/docks/editor_dock_manager.cpp @@ -31,13 +31,6 @@ #include "editor_dock_manager.h" #include "core/object/class_db.h" -#include "scene/gui/box_container.h" -#include "scene/gui/button.h" -#include "scene/gui/label.h" -#include "scene/gui/split_container.h" -#include "scene/gui/tab_container.h" -#include "scene/main/window.h" - #include "editor/docks/dock_tab_container.h" #include "editor/docks/editor_dock.h" #include "editor/editor_node.h" @@ -45,6 +38,13 @@ #include "editor/gui/window_wrapper.h" #include "editor/settings/editor_settings.h" #include "editor/themes/editor_scale.h" +#include "scene/gui/box_container.h" +#include "scene/gui/button.h" +#include "scene/gui/label.h" +#include "scene/gui/split_container.h" +#include "scene/gui/tab_container.h" +#include "scene/main/window.h" +#include "servers/display/display_server.h" //////////////////////////////////////////////// //////////////////////////////////////////////// diff --git a/editor/docks/groups_editor.cpp b/editor/docks/groups_editor.cpp index dbf16df4a52c..979fb021c70b 100644 --- a/editor/docks/groups_editor.cpp +++ b/editor/docks/groups_editor.cpp @@ -44,6 +44,7 @@ #include "scene/gui/grid_container.h" #include "scene/gui/label.h" #include "scene/resources/packed_scene.h" +#include "servers/display/display_server.h" static bool can_edit(Node *p_node, const String &p_group) { Node *n = p_node; diff --git a/editor/editor_interface.cpp b/editor/editor_interface.cpp index 5f75c9197652..f59333839d3f 100644 --- a/editor/editor_interface.cpp +++ b/editor/editor_interface.cpp @@ -62,6 +62,7 @@ #include "scene/main/window.h" #include "scene/resources/packed_scene.h" #include "scene/resources/theme.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" EditorInterface *EditorInterface::singleton = nullptr; diff --git a/editor/editor_log.cpp b/editor/editor_log.cpp index 93f5df407eed..6c2a136eaf50 100644 --- a/editor/editor_log.cpp +++ b/editor/editor_log.cpp @@ -48,6 +48,7 @@ #include "scene/gui/separator.h" #include "scene/main/timer.h" #include "scene/resources/font.h" +#include "servers/display/display_server.h" void EditorLog::_error_handler(void *p_self, const char *p_func, const char *p_file, int p_line, const char *p_error, const char *p_errorexp, bool p_editor_notify, ErrorHandlerType p_type) { EditorLog *self = static_cast(p_self); diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 346335a6dcde..8015e10c3593 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -457,7 +457,7 @@ void EditorNode::shortcut_input(const Ref &p_event) { } void EditorNode::_update_vsync_mode() { - const DisplayServer::VSyncMode window_vsync_mode = DisplayServer::VSyncMode(int(EDITOR_GET("interface/editor/display/vsync_mode"))); + const DisplayServerEnums::VSyncMode window_vsync_mode = DisplayServerEnums::VSyncMode(int(EDITOR_GET("interface/editor/display/vsync_mode"))); DisplayServer::get_singleton()->window_set_vsync_mode(window_vsync_mode); } @@ -939,7 +939,7 @@ void EditorNode::_notification(int p_what) { get_tree()->set_quit_on_go_back(false); bool is_fullscreen = EDITOR_DEF("_is_editor_fullscreen", false); if (is_fullscreen) { - DisplayServer::get_singleton()->window_set_mode(DisplayServer::WINDOW_MODE_FULLSCREEN); + DisplayServer::get_singleton()->window_set_mode(DisplayServerEnums::WINDOW_MODE_FULLSCREEN); } #endif get_tree()->get_root()->connect("files_dropped", callable_mp(this, &EditorNode::_dropped_files)); @@ -1632,8 +1632,8 @@ void EditorNode::_viewport_resized() { } void EditorNode::_titlebar_resized() { - DisplayServer::get_singleton()->window_set_window_buttons_offset(Vector2i(title_bar->get_global_position().y + title_bar->get_size().y / 2, title_bar->get_global_position().y + title_bar->get_size().y / 2), DisplayServer::MAIN_WINDOW_ID); - const Vector3i &margin = DisplayServer::get_singleton()->window_get_safe_title_margins(DisplayServer::MAIN_WINDOW_ID); + DisplayServer::get_singleton()->window_set_window_buttons_offset(Vector2i(title_bar->get_global_position().y + title_bar->get_size().y / 2, title_bar->get_global_position().y + title_bar->get_size().y / 2), DisplayServerEnums::MAIN_WINDOW_ID); + const Vector3i &margin = DisplayServer::get_singleton()->window_get_safe_title_margins(DisplayServerEnums::MAIN_WINDOW_ID); if (left_menu_spacer) { int w = (gui_base->is_layout_rtl()) ? margin.y : margin.x; left_menu_spacer->set_custom_minimum_size(Size2(w, 0)); @@ -3816,8 +3816,8 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { feature_profile_manager->popup_centered_clamped(Size2(900, 800) * EDSCALE, 0.8); } break; case EDITOR_TOGGLE_FULLSCREEN: { - DisplayServer::WindowMode mode = DisplayServer::get_singleton()->window_get_mode(); - if (mode == DisplayServer::WINDOW_MODE_FULLSCREEN || mode == DisplayServer::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + DisplayServerEnums::WindowMode mode = DisplayServer::get_singleton()->window_get_mode(); + if (mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN || mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { DisplayServer::get_singleton()->window_set_mode(prev_mode); #ifdef ANDROID_ENABLED EditorSettings::get_singleton()->set("_is_editor_fullscreen", false); @@ -3825,7 +3825,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { #endif } else { prev_mode = mode; - DisplayServer::get_singleton()->window_set_mode(DisplayServer::WINDOW_MODE_FULLSCREEN); + DisplayServer::get_singleton()->window_set_mode(DisplayServerEnums::WINDOW_MODE_FULLSCREEN); #ifdef ANDROID_ENABLED EditorSettings::get_singleton()->set("_is_editor_fullscreen", true); EditorSettings::get_singleton()->save(); @@ -5333,7 +5333,7 @@ void EditorNode::request_instantiate_scenes(const Vector &p_files) { String EditorNode::get_multiwindow_support_tooltip_text() const { if (SceneTree::get_singleton()->get_root()->is_embedding_subwindows()) { - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SUBWINDOWS)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SUBWINDOWS)) { return TTR("Multi-window support is not available because the `--single-window` command line argument was used to start the editor."); } else { return TTR("Multi-window support is not available because the current platform doesn't support multiple windows."); @@ -8080,7 +8080,7 @@ void EditorNode::_add_to_main_menu(const String &p_name, PopupMenu *p_menu) { } void EditorNode::_update_main_menu_type() { - bool can_expand = bool(EDITOR_GET("interface/editor/appearance/expand_to_title")) && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EXTEND_TO_TITLE); + bool can_expand = bool(EDITOR_GET("interface/editor/appearance/expand_to_title")) && DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_EXTEND_TO_TITLE); bool use_menu_button = EDITOR_GET("interface/editor/appearance/collapse_main_menu"); bool global_menu = !bool(EDITOR_GET("interface/editor/appearance/use_embedded_menu")) && NativeMenu::get_singleton()->has_feature(NativeMenu::FEATURE_GLOBAL_MENU); MenuType new_menu_type; @@ -8282,7 +8282,7 @@ EditorNode::EditorNode() { // Only if no touchscreen ui hint, disable emulation just in case. Input::get_singleton()->set_emulate_touch_from_mouse(false); } - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CUSTOM_CURSOR_SHAPE)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CUSTOM_CURSOR_SHAPE)) { DisplayServer::get_singleton()->cursor_set_custom_image(Ref()); } } @@ -8899,7 +8899,7 @@ EditorNode::EditorNode() { ED_SHORTCUT_AND_COMMAND("editor/editor_prev", TTRC("Open the previous Editor")); // Editor menu and toolbar. - bool can_expand = bool(EDITOR_GET("interface/editor/appearance/expand_to_title")) && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EXTEND_TO_TITLE); + bool can_expand = bool(EDITOR_GET("interface/editor/appearance/expand_to_title")) && DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_EXTEND_TO_TITLE); #ifdef MACOS_ENABLED if (NativeMenu::get_singleton()->has_system_menu(NativeMenu::APPLICATION_MENU_ID)) { @@ -9498,7 +9498,7 @@ EditorNode::EditorNode() { // Extend menu bar to window title. if (can_expand) { DisplayServer::get_singleton()->process_events(); - DisplayServer::get_singleton()->window_set_flag(DisplayServer::WINDOW_FLAG_EXTEND_TO_TITLE, true, DisplayServer::MAIN_WINDOW_ID); + DisplayServer::get_singleton()->window_set_flag(DisplayServerEnums::WINDOW_FLAG_EXTEND_TO_TITLE, true, DisplayServerEnums::MAIN_WINDOW_ID); title_bar->set_can_move_window(true); } diff --git a/editor/editor_node.h b/editor/editor_node.h index 4873b9c192d2..06b660e77a97 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -31,11 +31,12 @@ #pragma once #include "core/object/script_language.h" +#include "core/os/os.h" #include "core/templates/safe_refcount.h" #include "editor/editor_data.h" #include "editor/plugins/editor_plugin.h" #include "editor/settings/editor_folding.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" typedef void (*EditorNodeInitCallback)(); typedef void (*EditorPluginInitializeCallback)(); @@ -317,7 +318,7 @@ class EditorNode : public Node { bool exiting = false; bool dimmed = false; - DisplayServer::WindowMode prev_mode = DisplayServer::WINDOW_MODE_MAXIMIZED; + DisplayServerEnums::WindowMode prev_mode = DisplayServerEnums::WINDOW_MODE_MAXIMIZED; int old_split_ofs = 0; VSplitContainer *top_split = nullptr; Control *vp_base = nullptr; diff --git a/editor/export/editor_export_platform_apple_embedded.cpp b/editor/export/editor_export_platform_apple_embedded.cpp index 54142c570019..453e54d3a67e 100644 --- a/editor/export/editor_export_platform_apple_embedded.cpp +++ b/editor/export/editor_export_platform_apple_embedded.cpp @@ -43,6 +43,7 @@ #include "editor/script/script_editor_plugin.h" #include "editor/themes/editor_scale.h" #include "main/main.h" +#include "servers/display/display_server.h" #include "modules/modules_enabled.gen.h" // For mono. #include "modules/svg/image_loader_svg.h" @@ -523,33 +524,33 @@ String EditorExportPlatformAppleEmbedded::_process_config_file_line(const Ref diff --git a/editor/file_system/editor_file_system.cpp b/editor/file_system/editor_file_system.cpp index e21557062ca8..e913b1028a17 100644 --- a/editor/file_system/editor_file_system.cpp +++ b/editor/file_system/editor_file_system.cpp @@ -47,6 +47,7 @@ #include "editor/settings/editor_settings.h" #include "editor/settings/project_settings_editor.h" #include "scene/resources/packed_scene.h" +#include "servers/display/display_server.h" EditorFileSystem *EditorFileSystem::singleton = nullptr; int EditorFileSystem::nb_files_total = 0; @@ -3242,9 +3243,9 @@ void EditorFileSystem::reimport_files(const Vector &p_files) { // this could lead to a slow import process, especially when the editor is unfocused. // Temporarily disabling VSync and low_processor_usage_mode while reimporting fixes this. const bool old_low_processor_usage_mode = OS::get_singleton()->is_in_low_processor_usage_mode(); - const DisplayServer::VSyncMode old_vsync_mode = DisplayServer::get_singleton()->window_get_vsync_mode(DisplayServer::MAIN_WINDOW_ID); + const DisplayServerEnums::VSyncMode old_vsync_mode = DisplayServer::get_singleton()->window_get_vsync_mode(DisplayServerEnums::MAIN_WINDOW_ID); OS::get_singleton()->set_low_processor_usage_mode(false); - DisplayServer::get_singleton()->window_set_vsync_mode(DisplayServer::VSyncMode::VSYNC_DISABLED); + DisplayServer::get_singleton()->window_set_vsync_mode(DisplayServerEnums::VSyncMode::VSYNC_DISABLED); Vector reimport_files; diff --git a/editor/gui/editor_spin_slider.cpp b/editor/gui/editor_spin_slider.cpp index d088e72604bf..e4ddfcc0ebaf 100644 --- a/editor/gui/editor_spin_slider.cpp +++ b/editor/gui/editor_spin_slider.cpp @@ -30,10 +30,12 @@ #include "editor_spin_slider.h" +#include "core/config/engine.h" #include "core/input/input.h" #include "core/math/expression.h" #include "core/object/class_db.h" #include "core/os/keyboard.h" +#include "core/os/os.h" #include "core/string/translation_server.h" #include "editor/editor_string_names.h" #include "editor/settings/editor_settings.h" diff --git a/editor/gui/editor_title_bar.cpp b/editor/gui/editor_title_bar.cpp index 8544b4d5bdab..5c2ed89eb194 100644 --- a/editor/gui/editor_title_bar.cpp +++ b/editor/gui/editor_title_bar.cpp @@ -31,6 +31,7 @@ #include "editor_title_bar.h" #include "core/object/callable_method_pointer.h" +#include "servers/display/display_server.h" void EditorTitleBar::gui_input(const Ref &p_event) { if (!can_move) { @@ -56,7 +57,7 @@ void EditorTitleBar::gui_input(const Ref &p_event) { if (w) { if (mb->get_button_index() == MouseButton::LEFT) { if (mb->is_pressed()) { - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_WINDOW_DRAG)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_WINDOW_DRAG)) { DisplayServer::get_singleton()->window_start_drag(w->get_window_id()); } else { click_pos = DisplayServer::get_singleton()->mouse_get_position() - w->get_position(); diff --git a/editor/gui/window_wrapper.cpp b/editor/gui/window_wrapper.cpp index 0ccca178d5db..b6bf4e5edf0e 100644 --- a/editor/gui/window_wrapper.cpp +++ b/editor/gui/window_wrapper.cpp @@ -41,6 +41,7 @@ #include "scene/gui/panel.h" #include "scene/gui/popup.h" #include "scene/main/window.h" +#include "servers/display/display_server.h" // WindowWrapper @@ -237,7 +238,7 @@ void WindowWrapper::restore_window_from_saved_position(const Rect2 p_window_rect int screen = p_screen; Rect2 restored_screen_rect = p_screen_rect; - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SELF_FITTING_WINDOWS)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SELF_FITTING_WINDOWS)) { window_rect = Rect2i(); restored_screen_rect = Rect2i(); } diff --git a/editor/import/3d/scene_import_settings.cpp b/editor/import/3d/scene_import_settings.cpp index dda482afc557..fa99487ed781 100644 --- a/editor/import/3d/scene_import_settings.cpp +++ b/editor/import/3d/scene_import_settings.cpp @@ -47,6 +47,7 @@ #include "scene/resources/3d/importer_mesh.h" #include "scene/resources/sky.h" #include "scene/resources/surface_tool.h" +#include "servers/display/display_server.h" class SceneImportSettingsData : public Object { GDCLASS(SceneImportSettingsData, Object) @@ -1258,8 +1259,8 @@ void SceneImportSettingsDialog::_viewport_input(const Ref &p_input) (*rot_x) = CLAMP((*rot_x), -Math::PI / 2, Math::PI / 2); _update_camera(); } - if (mm.is_valid() && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CURSOR_SHAPE)) { - DisplayServer::get_singleton()->cursor_set_shape(DisplayServer::CursorShape::CURSOR_ARROW); + if (mm.is_valid() && DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CURSOR_SHAPE)) { + DisplayServer::get_singleton()->cursor_set_shape(DisplayServerEnums::CursorShape::CURSOR_ARROW); } Ref mb = p_input; if (mb.is_valid() && mb->get_button_index() == MouseButton::WHEEL_DOWN) { diff --git a/editor/inspector/editor_inspector.cpp b/editor/inspector/editor_inspector.cpp index 5524cf7e741f..659b97b5bb20 100644 --- a/editor/inspector/editor_inspector.cpp +++ b/editor/inspector/editor_inspector.cpp @@ -64,6 +64,7 @@ #include "scene/resources/style_box_flat.h" #include "scene/scene_string_names.h" #include "servers/display/accessibility_server.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" void EditorInspectorActionButton::_notification(int p_what) { diff --git a/editor/inspector/editor_properties.cpp b/editor/inspector/editor_properties.cpp index 3dc176b7c351..5158b271b76e 100644 --- a/editor/inspector/editor_properties.cpp +++ b/editor/inspector/editor_properties.cpp @@ -63,6 +63,7 @@ #include "scene/resources/mesh.h" #include "scene/resources/sky.h" #include "scene/resources/visual_shader_nodes.h" +#include "servers/display/display_server.h" ///////////////////// NIL ///////////////////////// diff --git a/editor/inspector/editor_resource_preview.cpp b/editor/inspector/editor_resource_preview.cpp index c1a85a6fd3df..a2e144f22f66 100644 --- a/editor/inspector/editor_resource_preview.cpp +++ b/editor/inspector/editor_resource_preview.cpp @@ -43,6 +43,7 @@ #include "editor/themes/editor_scale.h" #include "scene/main/window.h" #include "scene/resources/image_texture.h" +#include "servers/display/display_server.h" #include "servers/rendering/renderer_compositor.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_globals.h" diff --git a/editor/project_manager/project_dialog.cpp b/editor/project_manager/project_dialog.cpp index 5a9c115d221f..3fe55ea4f296 100644 --- a/editor/project_manager/project_dialog.cpp +++ b/editor/project_manager/project_dialog.cpp @@ -49,6 +49,7 @@ #include "scene/gui/option_button.h" #include "scene/gui/separator.h" #include "scene/gui/texture_rect.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" void ProjectDialog::_set_message(const String &p_msg, MessageType p_type, InputType p_input_type) { diff --git a/editor/project_manager/project_list.cpp b/editor/project_manager/project_list.cpp index c6f00329f3ee..873355e0bc05 100644 --- a/editor/project_manager/project_list.cpp +++ b/editor/project_manager/project_list.cpp @@ -34,6 +34,7 @@ #include "core/input/input.h" #include "core/io/dir_access.h" #include "core/object/class_db.h" +#include "core/os/os.h" #include "core/os/time.h" #include "core/version.h" #include "editor/editor_string_names.h" @@ -52,6 +53,7 @@ #include "scene/gui/texture_rect.h" #include "scene/resources/image_texture.h" #include "servers/display/accessibility_server.h" +#include "servers/display/display_server.h" void ProjectListItemControl::_notification(int p_what) { switch (p_what) { diff --git a/editor/project_manager/project_manager.cpp b/editor/project_manager/project_manager.cpp index 90d5eebea202..1c56e85c543e 100644 --- a/editor/project_manager/project_manager.cpp +++ b/editor/project_manager/project_manager.cpp @@ -1299,8 +1299,8 @@ void ProjectManager::_files_dropped(PackedStringArray p_files) { } void ProjectManager::_titlebar_resized() { - DisplayServer::get_singleton()->window_set_window_buttons_offset(Vector2i(title_bar->get_global_position().y + title_bar->get_size().y / 2, title_bar->get_global_position().y + title_bar->get_size().y / 2), DisplayServer::MAIN_WINDOW_ID); - const Vector3i &margin = DisplayServer::get_singleton()->window_get_safe_title_margins(DisplayServer::MAIN_WINDOW_ID); + DisplayServer::get_singleton()->window_set_window_buttons_offset(Vector2i(title_bar->get_global_position().y + title_bar->get_size().y / 2, title_bar->get_global_position().y + title_bar->get_size().y / 2), DisplayServerEnums::MAIN_WINDOW_ID); + const Vector3i &margin = DisplayServer::get_singleton()->window_get_safe_title_margins(DisplayServerEnums::MAIN_WINDOW_ID); if (left_menu_spacer) { int w = (root_container->is_layout_rtl()) ? margin.y : margin.x; left_menu_spacer->set_custom_minimum_size(Size2(w, 0)); @@ -1422,7 +1422,7 @@ ProjectManager::ProjectManager() { root_container->add_child(main_vbox); // Title bar. - bool can_expand = bool(EDITOR_GET("interface/editor/appearance/expand_to_title")) && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EXTEND_TO_TITLE); + bool can_expand = bool(EDITOR_GET("interface/editor/appearance/expand_to_title")) && DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_EXTEND_TO_TITLE); { title_bar = memnew(EditorTitleBar); @@ -1967,7 +1967,7 @@ ProjectManager::ProjectManager() { // Extend menu bar to window title. if (can_expand) { DisplayServer::get_singleton()->process_events(); - DisplayServer::get_singleton()->window_set_flag(DisplayServer::WINDOW_FLAG_EXTEND_TO_TITLE, true, DisplayServer::MAIN_WINDOW_ID); + DisplayServer::get_singleton()->window_set_flag(DisplayServerEnums::WINDOW_FLAG_EXTEND_TO_TITLE, true, DisplayServerEnums::MAIN_WINDOW_ID); title_bar->set_can_move_window(true); title_bar->connect(SceneStringName(item_rect_changed), callable_mp(this, &ProjectManager::_titlebar_resized)); } diff --git a/editor/project_manager/quick_settings_dialog.cpp b/editor/project_manager/quick_settings_dialog.cpp index 3b08aa505351..30b684cb6905 100644 --- a/editor/project_manager/quick_settings_dialog.cpp +++ b/editor/project_manager/quick_settings_dialog.cpp @@ -43,6 +43,7 @@ #include "scene/gui/label.h" #include "scene/gui/option_button.h" #include "scene/gui/panel_container.h" +#include "servers/display/display_server.h" void QuickSettingsDialog::_fetch_setting_values() { #ifndef ANDROID_ENABLED diff --git a/editor/run/editor_run.cpp b/editor/run/editor_run.cpp index 847e4c7da64c..78a564963108 100644 --- a/editor/run/editor_run.cpp +++ b/editor/run/editor_run.cpp @@ -286,7 +286,7 @@ EditorRun::WindowPlacement EditorRun::get_window_placement() { int window_placement = EDITOR_GET("run/window_placement/rect"); if (screen_rect != Rect2()) { - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_HIDPI)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_HIDPI)) { bool hidpi_proj = GET_CONFIG_WITH_OVERRIDE("display", "window/dpi/allow_hidpi"); int display_scale = 1; diff --git a/editor/run/embedded_process.cpp b/editor/run/embedded_process.cpp index ff6def0021f8..4dfb62e52c67 100644 --- a/editor/run/embedded_process.cpp +++ b/editor/run/embedded_process.cpp @@ -33,11 +33,13 @@ #include "core/config/project_settings.h" #include "core/input/input.h" #include "core/object/class_db.h" +#include "core/os/os.h" #include "editor/editor_string_names.h" #include "scene/main/timer.h" #include "scene/main/window.h" #include "scene/resources/style_box_flat.h" #include "scene/theme/theme_db.h" +#include "servers/display/display_server.h" void EmbeddedProcessBase::_notification(int p_what) { switch (p_what) { @@ -193,7 +195,7 @@ void EmbeddedProcess::embed_process(OS::ProcessID p_pid) { return; } - ERR_FAIL_COND_MSG(!DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_WINDOW_EMBEDDING), "Embedded process not supported by this display server."); + ERR_FAIL_COND_MSG(!DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_WINDOW_EMBEDDING), "Embedded process not supported by this display server."); if (current_process_id != 0) { // Stop embedding the last process. @@ -369,7 +371,7 @@ void EmbeddedProcess::_check_mouse_over() { } // Don't grab the focus if mouse over another window. - DisplayServer::WindowID window_id_over = DisplayServer::get_singleton()->get_window_at_screen_position(mouse_position); + DisplayServerEnums::WindowID window_id_over = DisplayServer::get_singleton()->get_window_at_screen_position(mouse_position); if (window_id_over > 0 && window_id_over != window->get_window_id()) { return; } @@ -377,8 +379,8 @@ void EmbeddedProcess::_check_mouse_over() { // Check if there's an exclusive popup, an open menu, or a tooltip. // We don't want to grab focus to prevent the game window from coming to the front of the modal window // or the open menu from closing when the mouse cursor moves outside the menu and over the embedded game. - Vector wl = DisplayServer::get_singleton()->get_window_list(); - for (const DisplayServer::WindowID &window_id : wl) { + Vector wl = DisplayServer::get_singleton()->get_window_list(); + for (const DisplayServerEnums::WindowID &window_id : wl) { Window *w = Window::get_from_id(window_id); if (w && (w->is_exclusive() || w->get_flag(Window::FLAG_POPUP))) { return; @@ -428,8 +430,8 @@ void EmbeddedProcess::_check_focused_process_id() { } Window *EmbeddedProcess::_get_current_modal_window() { - Vector wl = DisplayServer::get_singleton()->get_window_list(); - for (const DisplayServer::WindowID &window_id : wl) { + Vector wl = DisplayServer::get_singleton()->get_window_list(); + for (const DisplayServerEnums::WindowID &window_id : wl) { Window *w = Window::get_from_id(window_id); if (!w) { continue; diff --git a/editor/run/game_view_plugin.cpp b/editor/run/game_view_plugin.cpp index 99df061e7a2a..9ab21d824a48 100644 --- a/editor/run/game_view_plugin.cpp +++ b/editor/run/game_view_plugin.cpp @@ -54,6 +54,7 @@ #include "scene/gui/menu_button.h" #include "scene/gui/panel.h" #include "scene/gui/separator.h" +#include "servers/display/display_server.h" void GameViewDebugger::_session_started(Ref p_session) { if (!is_feature_enabled) { @@ -723,7 +724,7 @@ void GameView::_update_speed_state_size() { } GameView::EmbedAvailability GameView::_get_embed_available() { - if (!DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_WINDOW_EMBEDDING)) { + if (!DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_WINDOW_EMBEDDING)) { return EMBED_NOT_AVAILABLE_FEATURE_NOT_SUPPORTED; } if (get_tree()->get_root()->is_embedding_subwindows()) { @@ -750,14 +751,14 @@ GameView::EmbedAvailability GameView::_get_embed_available() { return EMBED_NOT_AVAILABLE_MAXIMIZED; } - DisplayServer::WindowMode window_mode = (DisplayServer::WindowMode)(GLOBAL_GET("display/window/size/mode").operator int()); - if (window_mode == DisplayServer::WindowMode::WINDOW_MODE_MINIMIZED) { + DisplayServerEnums::WindowMode window_mode = (DisplayServerEnums::WindowMode)(GLOBAL_GET("display/window/size/mode").operator int()); + if (window_mode == DisplayServerEnums::WindowMode::WINDOW_MODE_MINIMIZED) { return EMBED_NOT_AVAILABLE_MINIMIZED; } - if (window_mode == DisplayServer::WindowMode::WINDOW_MODE_MAXIMIZED) { + if (window_mode == DisplayServerEnums::WindowMode::WINDOW_MODE_MAXIMIZED) { return EMBED_NOT_AVAILABLE_MAXIMIZED; } - if (window_mode == DisplayServer::WindowMode::WINDOW_MODE_FULLSCREEN || window_mode == DisplayServer::WindowMode::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if (window_mode == DisplayServerEnums::WindowMode::WINDOW_MODE_FULLSCREEN || window_mode == DisplayServerEnums::WindowMode::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { return EMBED_NOT_AVAILABLE_FULLSCREEN; } @@ -945,7 +946,7 @@ void GameView::_notification(int p_what) { } break; case NOTIFICATION_READY: { - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_WINDOW_EMBEDDING)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_WINDOW_EMBEDDING)) { // Embedding available. int game_mode = EDITOR_GET("run/window_placement/game_embed_mode"); switch (game_mode) { @@ -1099,7 +1100,7 @@ void GameView::_update_arguments_for_instance(int p_idx, List &r_argumen // Add the editor window's native ID so the started game can directly set it as its parent. List::Element *N = r_arguments.insert_before(user_args_element, "--wid"); - N = r_arguments.insert_after(N, itos(DisplayServer::get_singleton()->window_get_native_handle(DisplayServer::WINDOW_HANDLE, get_window()->get_window_id()))); + N = r_arguments.insert_after(N, itos(DisplayServer::get_singleton()->window_get_native_handle(DisplayServerEnums::WINDOW_HANDLE, get_window()->get_window_id()))); #if MACOS_ENABLED N = r_arguments.insert_after(N, "--embedded"); diff --git a/editor/run/run_instances_dialog.cpp b/editor/run/run_instances_dialog.cpp index 72d604743ec5..645c521d48de 100644 --- a/editor/run/run_instances_dialog.cpp +++ b/editor/run/run_instances_dialog.cpp @@ -31,6 +31,7 @@ #include "run_instances_dialog.h" #include "core/config/project_settings.h" +#include "core/os/os.h" #include "editor/settings/editor_settings.h" #include "editor/themes/editor_scale.h" #include "scene/gui/check_box.h" diff --git a/editor/scene/3d/lightmap_gi_editor_plugin.cpp b/editor/scene/3d/lightmap_gi_editor_plugin.cpp index c74539b77ffc..438b5d6b31f7 100644 --- a/editor/scene/3d/lightmap_gi_editor_plugin.cpp +++ b/editor/scene/3d/lightmap_gi_editor_plugin.cpp @@ -34,6 +34,7 @@ #include "editor/editor_node.h" #include "editor/editor_string_names.h" #include "editor/gui/editor_file_dialog.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" #include "modules/modules_enabled.gen.h" // For lightmapper_rd. diff --git a/editor/scene/connections_dialog.cpp b/editor/scene/connections_dialog.cpp index b3ddc6515924..476a5d1dd116 100644 --- a/editor/scene/connections_dialog.cpp +++ b/editor/scene/connections_dialog.cpp @@ -55,6 +55,7 @@ #include "scene/gui/margin_container.h" #include "scene/gui/popup_menu.h" #include "scene/gui/spin_box.h" +#include "servers/display/display_server.h" static Node *_find_first_script(Node *p_root, Node *p_node) { if (p_node != p_root && p_node->get_owner() != p_root) { diff --git a/editor/script/script_editor_base.cpp b/editor/script/script_editor_base.cpp index 0d457b9f663b..7eeb842a1021 100644 --- a/editor/script/script_editor_base.cpp +++ b/editor/script/script_editor_base.cpp @@ -39,6 +39,7 @@ #include "scene/gui/menu_button.h" #include "scene/gui/rich_text_label.h" #include "scene/gui/split_container.h" +#include "servers/display/display_server.h" void ScriptEditorBase::_bind_methods() { ADD_SIGNAL(MethodInfo("name_changed")); @@ -274,7 +275,7 @@ TextEditorBase::EditMenus::EditMenus() { void TextEditorBase::_make_context_menu(bool p_selection, bool p_foldable, const Vector2 &p_position, bool p_show) { context_menu->clear(); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EMOJI_AND_SYMBOL_PICKER)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_EMOJI_AND_SYMBOL_PICKER)) { context_menu->add_item(TTRC("Emoji & Symbols"), EDIT_EMOJI_AND_SYMBOL); context_menu->add_separator(); } diff --git a/editor/settings/editor_settings.cpp b/editor/settings/editor_settings.cpp index f9d94c834e7d..6c7ebdeeaf57 100644 --- a/editor/settings/editor_settings.cpp +++ b/editor/settings/editor_settings.cpp @@ -60,6 +60,7 @@ #include "scene/main/scene_tree.h" #include "scene/main/window.h" #include "scene/resources/animation.h" +#include "servers/display/display_server.h" // PRIVATE METHODS @@ -1947,12 +1948,12 @@ String EditorSettings::get_editor_layouts_config() const { float EditorSettings::get_auto_display_scale() { #ifdef LINUXBSD_ENABLED if (DisplayServer::get_singleton()->get_name() == "Wayland") { - float main_window_scale = DisplayServer::get_singleton()->screen_get_scale(DisplayServer::SCREEN_OF_MAIN_WINDOW); + float main_window_scale = DisplayServer::get_singleton()->screen_get_scale(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW); if (DisplayServer::get_singleton()->get_screen_count() == 1 || Math::fract(main_window_scale) != 0) { // If we have a single screen or the screen of the window is fractional, all // bets are off. At this point, let's just return the current's window scale, - // which is special-cased to the scale of `SCREEN_OF_MAIN_WINDOW`. + // which is special-cased to the scale of `DisplayServerEnums::SCREEN_OF_MAIN_WINDOW`. return main_window_scale; } diff --git a/editor/settings/editor_settings.h b/editor/settings/editor_settings.h index 220d865c3806..03fa8c37df18 100644 --- a/editor/settings/editor_settings.h +++ b/editor/settings/editor_settings.h @@ -60,6 +60,7 @@ class EditorSettings : public Resource { NETWORK_ONLINE, }; + // Keep values synced with DisplayServerEnums constants. enum InitialScreen { INITIAL_SCREEN_AUTO = -5, // Remembers last screen position. INITIAL_SCREEN_WITH_MOUSE_FOCUS = -4, diff --git a/editor/settings/event_listener_line_edit.cpp b/editor/settings/event_listener_line_edit.cpp index 94f97f30396e..923d3b1caf1c 100644 --- a/editor/settings/event_listener_line_edit.cpp +++ b/editor/settings/event_listener_line_edit.cpp @@ -32,6 +32,7 @@ #include "core/input/input_map.h" #include "core/object/class_db.h" +#include "core/os/os.h" #include "scene/gui/dialogs.h" #include "servers/display/accessibility_server.h" diff --git a/editor/shader/shader_editor_plugin.cpp b/editor/shader/shader_editor_plugin.cpp index fb61f9b02408..e43eb8607e84 100644 --- a/editor/shader/shader_editor_plugin.cpp +++ b/editor/shader/shader_editor_plugin.cpp @@ -46,6 +46,7 @@ #include "scene/gui/item_list.h" #include "scene/gui/tab_container.h" #include "scene/gui/texture_rect.h" +#include "servers/display/display_server.h" Ref ShaderEditorPlugin::_get_current_shader() { int index = shader_tabs->get_current_tab(); diff --git a/editor/shader/shader_file_editor_plugin.cpp b/editor/shader/shader_file_editor_plugin.cpp index 4275731e73cb..e6d5560334c8 100644 --- a/editor/shader/shader_file_editor_plugin.cpp +++ b/editor/shader/shader_file_editor_plugin.cpp @@ -38,13 +38,10 @@ #include "scene/gui/flow_container.h" #include "scene/gui/item_list.h" #include "scene/gui/split_container.h" -#include "servers/display/display_server.h" #include "servers/rendering/rendering_device_binds.h" /*** SHADER SCRIPT EDITOR ****/ -/*** SCRIPT EDITOR ******/ - void ShaderFileEditor::_update_version(const StringName &p_version_txt, const RD::ShaderStage p_stage) { } diff --git a/editor/shader/text_shader_editor.cpp b/editor/shader/text_shader_editor.cpp index 692617491b99..88c227c4d0a8 100644 --- a/editor/shader/text_shader_editor.cpp +++ b/editor/shader/text_shader_editor.cpp @@ -40,6 +40,7 @@ #include "editor/themes/editor_scale.h" #include "editor/themes/editor_theme_manager.h" #include "scene/gui/split_container.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/shader_preprocessor.h" #include "servers/rendering/shader_types.h" @@ -1161,7 +1162,7 @@ void TextShaderEditor::_bookmark_item_pressed(int p_idx) { void TextShaderEditor::_make_context_menu(bool p_selection, Vector2 p_position) { context_menu->clear(); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EMOJI_AND_SYMBOL_PICKER)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_EMOJI_AND_SYMBOL_PICKER)) { context_menu->add_item(TTR("Emoji & Symbols"), EDIT_EMOJI_AND_SYMBOL); context_menu->add_separator(); } diff --git a/main/main.cpp b/main/main.cpp index e6642bd51c6e..632860fcb6e1 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -235,13 +235,13 @@ static bool single_threaded_scene = false; // Display -static DisplayServer::WindowMode window_mode = DisplayServer::WINDOW_MODE_WINDOWED; -static DisplayServer::ScreenOrientation window_orientation = DisplayServer::SCREEN_LANDSCAPE; -static DisplayServer::VSyncMode window_vsync_mode = DisplayServer::VSYNC_ENABLED; +static DisplayServerEnums::WindowMode window_mode = DisplayServerEnums::WINDOW_MODE_WINDOWED; +static DisplayServerEnums::ScreenOrientation window_orientation = DisplayServerEnums::SCREEN_LANDSCAPE; +static DisplayServerEnums::VSyncMode window_vsync_mode = DisplayServerEnums::VSYNC_ENABLED; static uint32_t window_flags = 0; static Size2i window_size = Size2i(1152, 648); -static int init_screen = DisplayServer::SCREEN_PRIMARY; +static int init_screen = DisplayServerEnums::SCREEN_PRIMARY; static bool init_fullscreen = false; static bool init_maximized = false; static bool init_windowed = false; @@ -1302,10 +1302,10 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } } else if (arg == "-f" || arg == "--fullscreen") { // force fullscreen init_fullscreen = true; - window_mode = DisplayServer::WINDOW_MODE_FULLSCREEN; + window_mode = DisplayServerEnums::WINDOW_MODE_FULLSCREEN; } else if (arg == "-m" || arg == "--maximized") { // force maximized window init_maximized = true; - window_mode = DisplayServer::WINDOW_MODE_MAXIMIZED; + window_mode = DisplayServerEnums::WINDOW_MODE_MAXIMIZED; } else if (arg == "-w" || arg == "--windowed") { // force windowed window init_windowed = true; @@ -2174,7 +2174,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph main_args.push_back("--editor"); if (!init_windowed && !init_fullscreen) { init_maximized = true; - window_mode = DisplayServer::WINDOW_MODE_MAXIMIZED; + window_mode = DisplayServerEnums::WINDOW_MODE_MAXIMIZED; } } @@ -2645,33 +2645,33 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } if (!bool(GLOBAL_GET("display/window/size/resizable"))) { - window_flags |= DisplayServer::WINDOW_FLAG_RESIZE_DISABLED_BIT; + window_flags |= DisplayServerEnums::WINDOW_FLAG_RESIZE_DISABLED_BIT; } if (bool(GLOBAL_GET("display/window/size/minimize_disabled"))) { - window_flags |= DisplayServer::WINDOW_FLAG_MINIMIZE_DISABLED_BIT; + window_flags |= DisplayServerEnums::WINDOW_FLAG_MINIMIZE_DISABLED_BIT; } if (bool(GLOBAL_GET("display/window/size/maximize_disabled"))) { - window_flags |= DisplayServer::WINDOW_FLAG_MAXIMIZE_DISABLED_BIT; + window_flags |= DisplayServerEnums::WINDOW_FLAG_MAXIMIZE_DISABLED_BIT; } if (bool(GLOBAL_GET("display/window/size/borderless"))) { - window_flags |= DisplayServer::WINDOW_FLAG_BORDERLESS_BIT; + window_flags |= DisplayServerEnums::WINDOW_FLAG_BORDERLESS_BIT; } if (bool(GLOBAL_GET("display/window/size/always_on_top"))) { - window_flags |= DisplayServer::WINDOW_FLAG_ALWAYS_ON_TOP_BIT; + window_flags |= DisplayServerEnums::WINDOW_FLAG_ALWAYS_ON_TOP_BIT; } if (bool(GLOBAL_GET("display/window/size/transparent"))) { - window_flags |= DisplayServer::WINDOW_FLAG_TRANSPARENT_BIT; + window_flags |= DisplayServerEnums::WINDOW_FLAG_TRANSPARENT_BIT; } if (bool(GLOBAL_GET("display/window/size/extend_to_title"))) { - window_flags |= DisplayServer::WINDOW_FLAG_EXTEND_TO_TITLE_BIT; + window_flags |= DisplayServerEnums::WINDOW_FLAG_EXTEND_TO_TITLE_BIT; } if (bool(GLOBAL_GET("display/window/size/no_focus"))) { - window_flags |= DisplayServer::WINDOW_FLAG_NO_FOCUS_BIT; + window_flags |= DisplayServerEnums::WINDOW_FLAG_NO_FOCUS_BIT; } if (bool(GLOBAL_GET("display/window/size/sharp_corners"))) { - window_flags |= DisplayServer::WINDOW_FLAG_SHARP_CORNERS_BIT; + window_flags |= DisplayServerEnums::WINDOW_FLAG_SHARP_CORNERS_BIT; } - window_mode = (DisplayServer::WindowMode)(GLOBAL_GET("display/window/size/mode").operator int()); + window_mode = (DisplayServerEnums::WindowMode)(GLOBAL_GET("display/window/size/mode").operator int()); int initial_position_type = GLOBAL_GET("display/window/size/initial_position_type").operator int(); if (initial_position_type == Window::WINDOW_INITIAL_POSITION_ABSOLUTE) { // Absolute. if (!init_use_custom_pos) { @@ -2680,7 +2680,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } } else if (initial_position_type == Window::WINDOW_INITIAL_POSITION_CENTER_PRIMARY_SCREEN || initial_position_type == Window::WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN) { // Center of Primary Screen. if (!init_use_custom_screen) { - init_screen = DisplayServer::SCREEN_PRIMARY; + init_screen = DisplayServerEnums::SCREEN_PRIMARY; init_use_custom_screen = true; } } else if (initial_position_type == Window::WINDOW_INITIAL_POSITION_CENTER_OTHER_SCREEN) { // Center of Other Screen. @@ -2690,12 +2690,12 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } } else if (initial_position_type == Window::WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_MOUSE_FOCUS) { // Center of Screen With Mouse Pointer. if (!init_use_custom_screen) { - init_screen = DisplayServer::SCREEN_WITH_MOUSE_FOCUS; + init_screen = DisplayServerEnums::SCREEN_WITH_MOUSE_FOCUS; init_use_custom_screen = true; } } else if (initial_position_type == Window::WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_KEYBOARD_FOCUS) { // Center of Screen With Keyboard Focus. if (!init_use_custom_screen) { - init_screen = DisplayServer::SCREEN_WITH_KEYBOARD_FOCUS; + init_screen = DisplayServerEnums::SCREEN_WITH_KEYBOARD_FOCUS; init_use_custom_screen = true; } } @@ -2778,12 +2778,12 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } { - window_orientation = DisplayServer::ScreenOrientation(int(GLOBAL_DEF_BASIC("display/window/handheld/orientation", DisplayServer::ScreenOrientation::SCREEN_LANDSCAPE))); + window_orientation = DisplayServerEnums::ScreenOrientation(int(GLOBAL_DEF_BASIC("display/window/handheld/orientation", DisplayServerEnums::ScreenOrientation::SCREEN_LANDSCAPE))); } { - window_vsync_mode = DisplayServer::VSyncMode(int(GLOBAL_DEF_BASIC("display/window/vsync/vsync_mode", DisplayServer::VSyncMode::VSYNC_ENABLED))); + window_vsync_mode = DisplayServerEnums::VSyncMode(int(GLOBAL_DEF_BASIC("display/window/vsync/vsync_mode", DisplayServerEnums::VSyncMode::VSYNC_ENABLED))); if (disable_vsync) { - window_vsync_mode = DisplayServer::VSyncMode::VSYNC_DISABLED; + window_vsync_mode = DisplayServerEnums::VSyncMode::VSYNC_DISABLED; } } @@ -3115,13 +3115,13 @@ Error Main::setup2(bool p_show_boot_logo) { String mode = config->get_value("EditorWindow", "mode", "maximized"); window_size = config->get_value("EditorWindow", "size", window_size); if (mode == "windowed") { - window_mode = DisplayServer::WINDOW_MODE_WINDOWED; + window_mode = DisplayServerEnums::WINDOW_MODE_WINDOWED; init_windowed = true; } else if (mode == "fullscreen") { - window_mode = DisplayServer::WINDOW_MODE_FULLSCREEN; + window_mode = DisplayServerEnums::WINDOW_MODE_FULLSCREEN; init_fullscreen = true; } else { - window_mode = DisplayServer::WINDOW_MODE_MAXIMIZED; + window_mode = DisplayServerEnums::WINDOW_MODE_MAXIMIZED; init_maximized = true; } @@ -3133,7 +3133,7 @@ Error Main::setup2(bool p_show_boot_logo) { } if (init_screen == EditorSettings::InitialScreen::INITIAL_SCREEN_AUTO) { - init_screen = DisplayServer::SCREEN_PRIMARY; + init_screen = DisplayServerEnums::SCREEN_PRIMARY; } OS::get_singleton()->benchmark_end_measure("Startup", "Initialize Early Settings"); @@ -3222,28 +3222,28 @@ Error Main::setup2(bool p_show_boot_logo) { Color boot_bg_color = GLOBAL_DEF_BASIC("application/boot_splash/bg_color", boot_splash_bg_color); DisplayServer::set_early_window_clear_color_override(true, boot_bg_color); - DisplayServer::Context context; + DisplayServerEnums::Context context; if (editor) { - context = DisplayServer::CONTEXT_EDITOR; + context = DisplayServerEnums::CONTEXT_EDITOR; } else if (project_manager) { - context = DisplayServer::CONTEXT_PROJECTMAN; + context = DisplayServerEnums::CONTEXT_PROJECTMAN; } else { - context = DisplayServer::CONTEXT_ENGINE; + context = DisplayServerEnums::CONTEXT_ENGINE; } if (init_embed_parent_window_id) { // Reset flags and other settings to be sure it's borderless and windowed. The position and size should have been initialized correctly // from --position and --resolution parameters. - window_mode = DisplayServer::WINDOW_MODE_WINDOWED; - window_flags = DisplayServer::WINDOW_FLAG_BORDERLESS_BIT; + window_mode = DisplayServerEnums::WINDOW_MODE_WINDOWED; + window_flags = DisplayServerEnums::WINDOW_FLAG_BORDERLESS_BIT; if (bool(GLOBAL_GET("display/window/size/transparent"))) { - window_flags |= DisplayServer::WINDOW_FLAG_TRANSPARENT_BIT; + window_flags |= DisplayServerEnums::WINDOW_FLAG_TRANSPARENT_BIT; } } #ifdef TOOLS_ENABLED if ((project_manager || editor) && init_expand_to_title) { - window_flags |= DisplayServer::WINDOW_FLAG_EXTEND_TO_TITLE_BIT; + window_flags |= DisplayServerEnums::WINDOW_FLAG_EXTEND_TO_TITLE_BIT; } #endif @@ -3390,20 +3390,20 @@ Error Main::setup2(bool p_show_boot_logo) { break; } if (!(force_res || use_custom_res)) { - display_server->window_set_size(Size2(window_size) * ui_scale, DisplayServer::MAIN_WINDOW_ID); + display_server->window_set_size(Size2(window_size) * ui_scale, DisplayServerEnums::MAIN_WINDOW_ID); } - if (display_server->has_feature(DisplayServer::FEATURE_SUBWINDOWS) && !display_server->has_feature(DisplayServer::FEATURE_SELF_FITTING_WINDOWS)) { + if (display_server->has_feature(DisplayServerEnums::FEATURE_SUBWINDOWS) && !display_server->has_feature(DisplayServerEnums::FEATURE_SELF_FITTING_WINDOWS)) { Size2 real_size = DisplayServer::get_singleton()->window_get_size(); Rect2i scr_rect = display_server->screen_get_usable_rect(init_screen); - display_server->window_set_position(scr_rect.position + (scr_rect.size - real_size) / 2, DisplayServer::MAIN_WINDOW_ID); + display_server->window_set_position(scr_rect.position + (scr_rect.size - real_size) / 2, DisplayServerEnums::MAIN_WINDOW_ID); } } #endif - if (display_server->has_feature(DisplayServer::FEATURE_SUBWINDOWS)) { - display_server->show_window(DisplayServer::MAIN_WINDOW_ID); + if (display_server->has_feature(DisplayServerEnums::FEATURE_SUBWINDOWS)) { + display_server->show_window(DisplayServerEnums::MAIN_WINDOW_ID); } - if (display_server->has_feature(DisplayServer::FEATURE_ORIENTATION)) { + if (display_server->has_feature(DisplayServerEnums::FEATURE_ORIENTATION)) { display_server->screen_set_orientation(window_orientation); } @@ -3422,7 +3422,7 @@ Error Main::setup2(bool p_show_boot_logo) { if (editor && init_windowed) { // We still need to check we are actually in windowed mode, because // certain platform might only support one fullscreen window. - if (DisplayServer::get_singleton()->window_get_mode() == DisplayServer::WINDOW_MODE_WINDOWED) { + if (DisplayServer::get_singleton()->window_get_mode() == DisplayServerEnums::WINDOW_MODE_WINDOWED) { Vector2i current_size = DisplayServer::get_singleton()->window_get_size(); Vector2i current_pos = DisplayServer::get_singleton()->window_get_position(); int screen = DisplayServer::get_singleton()->window_get_current_screen(); @@ -3443,16 +3443,16 @@ Error Main::setup2(bool p_show_boot_logo) { if (GLOBAL_GET("debug/settings/stdout/print_fps") || print_fps) { // Print requested V-Sync mode at startup to diagnose the printed FPS not going above the monitor refresh rate. switch (window_vsync_mode) { - case DisplayServer::VSyncMode::VSYNC_DISABLED: + case DisplayServerEnums::VSyncMode::VSYNC_DISABLED: print_line("Requested V-Sync mode: Disabled"); break; - case DisplayServer::VSyncMode::VSYNC_ENABLED: + case DisplayServerEnums::VSyncMode::VSYNC_ENABLED: print_line("Requested V-Sync mode: Enabled - FPS will likely be capped to the monitor refresh rate."); break; - case DisplayServer::VSyncMode::VSYNC_ADAPTIVE: + case DisplayServerEnums::VSyncMode::VSYNC_ADAPTIVE: print_line("Requested V-Sync mode: Adaptive"); break; - case DisplayServer::VSyncMode::VSYNC_MAILBOX: + case DisplayServerEnums::VSyncMode::VSYNC_MAILBOX: print_line("Requested V-Sync mode: Mailbox"); break; } @@ -3572,12 +3572,12 @@ Error Main::setup2(bool p_show_boot_logo) { if (init_windowed) { //do none.. } else if (init_maximized) { - DisplayServer::get_singleton()->window_set_mode(DisplayServer::WINDOW_MODE_MAXIMIZED); + DisplayServer::get_singleton()->window_set_mode(DisplayServerEnums::WINDOW_MODE_MAXIMIZED); } else if (init_fullscreen) { - DisplayServer::get_singleton()->window_set_mode(DisplayServer::WINDOW_MODE_FULLSCREEN); + DisplayServer::get_singleton()->window_set_mode(DisplayServerEnums::WINDOW_MODE_FULLSCREEN); } if (init_always_on_top) { - DisplayServer::get_singleton()->window_set_flag(DisplayServer::WINDOW_FLAG_ALWAYS_ON_TOP, true); + DisplayServer::get_singleton()->window_set_flag(DisplayServerEnums::WINDOW_FLAG_ALWAYS_ON_TOP, true); } } @@ -3934,7 +3934,7 @@ void Main::setup_boot_logo() { } #if defined(TOOLS_ENABLED) && defined(MACOS_ENABLED) - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_ICON) && OS::get_singleton()->get_bundle_icon_path().is_empty()) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_ICON) && OS::get_singleton()->get_bundle_icon_path().is_empty()) { Ref icon = memnew(Image(app_icon_png)); DisplayServer::get_singleton()->set_icon(icon); } @@ -4431,7 +4431,7 @@ int Main::start() { bool embed_subwindows = GLOBAL_GET("display/window/subwindows/embed_subwindows"); - if (single_window || (!project_manager && !editor && embed_subwindows) || !DisplayServer::get_singleton()->has_feature(DisplayServer::Feature::FEATURE_SUBWINDOWS)) { + if (single_window || (!project_manager && !editor && embed_subwindows) || !DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SUBWINDOWS)) { sml->get_root()->set_embedding_subwindows(true); } @@ -4718,7 +4718,7 @@ int Main::start() { } #endif String mac_icon_path = GLOBAL_GET("application/config/macos_native_icon"); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_NATIVE_ICON) && !mac_icon_path.is_empty() && !has_icon) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_NATIVE_ICON) && !mac_icon_path.is_empty() && !has_icon) { DisplayServer::get_singleton()->set_native_icon(mac_icon_path); has_icon = true; } @@ -4726,14 +4726,14 @@ int Main::start() { #ifdef WINDOWS_ENABLED String win_icon_path = GLOBAL_GET("application/config/windows_native_icon"); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_NATIVE_ICON) && !win_icon_path.is_empty()) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_NATIVE_ICON) && !win_icon_path.is_empty()) { DisplayServer::get_singleton()->set_native_icon(win_icon_path); has_icon = true; } #endif String icon_path = GLOBAL_GET("application/config/icon"); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_ICON) && !icon_path.is_empty() && !has_icon) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_ICON) && !icon_path.is_empty() && !has_icon) { Ref icon; icon.instantiate(); if (ImageLoader::load_image(icon_path, icon) == OK) { @@ -4776,7 +4776,7 @@ int Main::start() { #endif } - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_ICON) && !has_icon && OS::get_singleton()->get_bundle_icon_path().is_empty()) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_ICON) && !has_icon && OS::get_singleton()->get_bundle_icon_path().is_empty()) { Ref icon = memnew(Image(app_icon_png)); DisplayServer::get_singleton()->set_icon(icon); } diff --git a/main/main_timer_sync.cpp b/main/main_timer_sync.cpp index ed6786cd528d..776de70276e2 100644 --- a/main/main_timer_sync.cpp +++ b/main/main_timer_sync.cpp @@ -243,8 +243,8 @@ int64_t MainTimerSync::DeltaSmoother::smooth_delta(int64_t p_delta) { } // only attempt smoothing if vsync is selected - DisplayServer::VSyncMode vsync_mode = DisplayServer::get_singleton()->window_get_vsync_mode(DisplayServer::MAIN_WINDOW_ID); - if (vsync_mode != DisplayServer::VSYNC_ENABLED) { + DisplayServerEnums::VSyncMode vsync_mode = DisplayServer::get_singleton()->window_get_vsync_mode(DisplayServerEnums::MAIN_WINDOW_ID); + if (vsync_mode != DisplayServerEnums::VSYNC_ENABLED) { return p_delta; } diff --git a/modules/gltf/editor/editor_scene_importer_blend.cpp b/modules/gltf/editor/editor_scene_importer_blend.cpp index b9b20408efd0..36bd34a46434 100644 --- a/modules/gltf/editor/editor_scene_importer_blend.cpp +++ b/modules/gltf/editor/editor_scene_importer_blend.cpp @@ -42,6 +42,7 @@ #include "editor/themes/editor_scale.h" #include "main/main.h" #include "scene/gui/line_edit.h" +#include "servers/display/display_server.h" #ifdef WINDOWS_ENABLED #include diff --git a/modules/jolt_physics/objects/jolt_soft_body_3d.cpp b/modules/jolt_physics/objects/jolt_soft_body_3d.cpp index 55272bac862a..d1b02e183965 100644 --- a/modules/jolt_physics/objects/jolt_soft_body_3d.cpp +++ b/modules/jolt_physics/objects/jolt_soft_body_3d.cpp @@ -38,6 +38,7 @@ #include "jolt_body_3d.h" #include "jolt_group_filter.h" +#include "core/config/engine.h" #include "servers/rendering/rendering_server.h" #include "Jolt/Physics/SoftBody/SoftBodyMotionProperties.h" diff --git a/modules/noise/noise_texture_2d.cpp b/modules/noise/noise_texture_2d.cpp index 7b2be2c26688..f84592eea577 100644 --- a/modules/noise/noise_texture_2d.cpp +++ b/modules/noise/noise_texture_2d.cpp @@ -32,6 +32,7 @@ #include "noise.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "servers/rendering/rendering_server.h" diff --git a/modules/noise/noise_texture_3d.cpp b/modules/noise/noise_texture_3d.cpp index 8850f33b4096..d777194ef6cf 100644 --- a/modules/noise/noise_texture_3d.cpp +++ b/modules/noise/noise_texture_3d.cpp @@ -32,6 +32,7 @@ #include "noise.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "servers/rendering/rendering_server.h" diff --git a/modules/openxr/extensions/platform/openxr_opengl_extension.cpp b/modules/openxr/extensions/platform/openxr_opengl_extension.cpp index 560333aaf37d..79a56fedd45e 100644 --- a/modules/openxr/extensions/platform/openxr_opengl_extension.cpp +++ b/modules/openxr/extensions/platform/openxr_opengl_extension.cpp @@ -35,6 +35,7 @@ #include "../../openxr_util.h" #include "drivers/gles3/storage/texture_storage.h" +#include "servers/display/display_server.h" // OpenXR requires us to submit sRGB textures so that it recognizes the content // as being in sRGB color space. We do fall back on "normal" textures but this @@ -156,15 +157,15 @@ void *OpenXROpenGLExtension::set_session_create_and_get_next_pointer(void *p_nex graphics_binding_gl.type = XR_TYPE_GRAPHICS_BINDING_OPENGL_WIN32_KHR, graphics_binding_gl.next = p_next_pointer; - graphics_binding_gl.hDC = (HDC)display_server->window_get_native_handle(DisplayServer::WINDOW_VIEW); - graphics_binding_gl.hGLRC = (HGLRC)display_server->window_get_native_handle(DisplayServer::OPENGL_CONTEXT); + graphics_binding_gl.hDC = (HDC)display_server->window_get_native_handle(DisplayServerEnums::WINDOW_VIEW); + graphics_binding_gl.hGLRC = (HGLRC)display_server->window_get_native_handle(DisplayServerEnums::OPENGL_CONTEXT); #elif defined(ANDROID_ENABLED) graphics_binding_gl.type = XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR; graphics_binding_gl.next = p_next_pointer; - graphics_binding_gl.display = (void *)display_server->window_get_native_handle(DisplayServer::DISPLAY_HANDLE); + graphics_binding_gl.display = (void *)display_server->window_get_native_handle(DisplayServerEnums::DISPLAY_HANDLE); graphics_binding_gl.config = (EGLConfig)0; // https://github.com/KhronosGroup/OpenXR-SDK-Source/blob/master/src/tests/hello_xr/graphicsplugin_opengles.cpp#L122 - graphics_binding_gl.context = (void *)display_server->window_get_native_handle(DisplayServer::OPENGL_CONTEXT); + graphics_binding_gl.context = (void *)display_server->window_get_native_handle(DisplayServerEnums::OPENGL_CONTEXT); #else #if defined(EGL_ENABLED) && defined(WAYLAND_ENABLED) if (display_server->get_name() == "Wayland") { @@ -174,9 +175,9 @@ void *OpenXROpenGLExtension::set_session_create_and_get_next_pointer(void *p_nex graphics_binding_egl.next = p_next_pointer; graphics_binding_egl.getProcAddress = eglGetProcAddress; - graphics_binding_egl.display = (void *)display_server->window_get_native_handle(DisplayServer::EGL_DISPLAY); - graphics_binding_egl.config = (void *)display_server->window_get_native_handle(DisplayServer::EGL_CONFIG); - graphics_binding_egl.context = (void *)display_server->window_get_native_handle(DisplayServer::OPENGL_CONTEXT); + graphics_binding_egl.display = (void *)display_server->window_get_native_handle(DisplayServerEnums::EGL_DISPLAY); + graphics_binding_egl.config = (void *)display_server->window_get_native_handle(DisplayServerEnums::EGL_CONFIG); + graphics_binding_egl.context = (void *)display_server->window_get_native_handle(DisplayServerEnums::OPENGL_CONTEXT); return &graphics_binding_egl; } @@ -185,11 +186,11 @@ void *OpenXROpenGLExtension::set_session_create_and_get_next_pointer(void *p_nex graphics_binding_gl.type = XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR; graphics_binding_gl.next = p_next_pointer; - void *display_handle = (void *)display_server->window_get_native_handle(DisplayServer::DISPLAY_HANDLE); - void *glxcontext_handle = (void *)display_server->window_get_native_handle(DisplayServer::OPENGL_CONTEXT); - void *glxdrawable_handle = (void *)display_server->window_get_native_handle(DisplayServer::WINDOW_HANDLE); - void *glx_fbconfig_handle = (void *)display_server->window_get_native_handle(DisplayServer::GLX_FBCONFIG); - VisualID glx_visualid = (VisualID)display_server->window_get_native_handle(DisplayServer::GLX_VISUALID); + void *display_handle = (void *)display_server->window_get_native_handle(DisplayServerEnums::DISPLAY_HANDLE); + void *glxcontext_handle = (void *)display_server->window_get_native_handle(DisplayServerEnums::OPENGL_CONTEXT); + void *glxdrawable_handle = (void *)display_server->window_get_native_handle(DisplayServerEnums::WINDOW_HANDLE); + void *glx_fbconfig_handle = (void *)display_server->window_get_native_handle(DisplayServerEnums::GLX_FBCONFIG); + VisualID glx_visualid = (VisualID)display_server->window_get_native_handle(DisplayServerEnums::GLX_VISUALID); graphics_binding_gl.xDisplay = (Display *)display_handle; graphics_binding_gl.glxContext = (GLXContext)glxcontext_handle; diff --git a/modules/openxr/openxr_api.cpp b/modules/openxr/openxr_api.cpp index 4a3d1b338c9b..3b4dcf616003 100644 --- a/modules/openxr/openxr_api.cpp +++ b/modules/openxr/openxr_api.cpp @@ -36,6 +36,7 @@ #include "core/config/engine.h" #include "core/config/project_settings.h" #include "core/os/memory.h" +#include "core/os/os.h" #include "core/profiling/profiling.h" #include "core/version.h" #include "servers/rendering/rendering_server.h" diff --git a/modules/webxr/webxr_interface_js.cpp b/modules/webxr/webxr_interface_js.cpp index 0a78e29f08af..bc483e573193 100644 --- a/modules/webxr/webxr_interface_js.cpp +++ b/modules/webxr/webxr_interface_js.cpp @@ -40,6 +40,7 @@ #include "scene/main/scene_tree.h" #include "scene/main/window.h" #include "scene/scene_string_names.h" +#include "servers/display/display_server.h" #include "servers/xr/xr_hand_tracker.h" #include diff --git a/platform/android/android_input_handler.cpp b/platform/android/android_input_handler.cpp index 79da7208833c..96b77e9eeb9b 100644 --- a/platform/android/android_input_handler.cpp +++ b/platform/android/android_input_handler.cpp @@ -134,7 +134,7 @@ void AndroidInputHandler::process_key_event(int p_physical_keycode, int p_unicod if (p_physical_keycode == AKEYCODE_BACK && p_pressed) { if (DisplayServerAndroid *dsa = Object::cast_to(DisplayServer::get_singleton())) { - dsa->send_window_event(DisplayServer::WINDOW_EVENT_GO_BACK_REQUEST, true); + dsa->send_window_event(DisplayServerEnums::WINDOW_EVENT_GO_BACK_REQUEST, true); } } diff --git a/platform/android/display_server_android.cpp b/platform/android/display_server_android.cpp index d265ac18fa81..71f5953e04a6 100644 --- a/platform/android/display_server_android.cpp +++ b/platform/android/display_server_android.cpp @@ -64,33 +64,33 @@ DisplayServerAndroid *DisplayServerAndroid::get_singleton() { return static_cast(DisplayServer::get_singleton()); } -bool DisplayServerAndroid::has_feature(Feature p_feature) const { +bool DisplayServerAndroid::has_feature(DisplayServerEnums::Feature p_feature) const { switch (p_feature) { #ifndef DISABLE_DEPRECATED - case FEATURE_GLOBAL_MENU: { + case DisplayServerEnums::FEATURE_GLOBAL_MENU: { return (native_menu && native_menu->has_feature(NativeMenu::FEATURE_GLOBAL_MENU)); } break; #endif - case FEATURE_CURSOR_SHAPE: - //case FEATURE_CUSTOM_CURSOR_SHAPE: - //case FEATURE_HIDPI: - //case FEATURE_ICON: - //case FEATURE_IME: - case FEATURE_MOUSE: - //case FEATURE_MOUSE_WARP: - case FEATURE_NATIVE_DIALOG: - case FEATURE_NATIVE_DIALOG_INPUT: - case FEATURE_NATIVE_DIALOG_FILE: - //case FEATURE_NATIVE_DIALOG_FILE_EXTRA: - case FEATURE_NATIVE_DIALOG_FILE_MIME: - //case FEATURE_NATIVE_ICON: - case FEATURE_WINDOW_TRANSPARENCY: - case FEATURE_CLIPBOARD: - case FEATURE_KEEP_SCREEN_ON: - case FEATURE_ORIENTATION: - case FEATURE_TOUCHSCREEN: - case FEATURE_VIRTUAL_KEYBOARD: - case FEATURE_TEXT_TO_SPEECH: + case DisplayServerEnums::FEATURE_CURSOR_SHAPE: + //case DisplayServerEnums::FEATURE_CUSTOM_CURSOR_SHAPE: + //case DisplayServerEnums::FEATURE_HIDPI: + //case DisplayServerEnums::FEATURE_ICON: + //case DisplayServerEnums::FEATURE_IME: + case DisplayServerEnums::FEATURE_MOUSE: + //case DisplayServerEnums::FEATURE_MOUSE_WARP: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_INPUT: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE: + //case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_EXTRA: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_MIME: + //case DisplayServerEnums::FEATURE_NATIVE_ICON: + case DisplayServerEnums::FEATURE_WINDOW_TRANSPARENCY: + case DisplayServerEnums::FEATURE_CLIPBOARD: + case DisplayServerEnums::FEATURE_KEEP_SCREEN_ON: + case DisplayServerEnums::FEATURE_ORIENTATION: + case DisplayServerEnums::FEATURE_TOUCHSCREEN: + case DisplayServerEnums::FEATURE_VIRTUAL_KEYBOARD: + case DisplayServerEnums::FEATURE_TEXT_TO_SPEECH: return true; default: return false; @@ -222,7 +222,7 @@ void DisplayServerAndroid::emit_input_dialog_callback(String p_text) { } } -Error DisplayServerAndroid::file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, WindowID p_window_id) { +Error DisplayServerAndroid::file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) { GodotJavaWrapper *godot_java = OS_Android::get_singleton()->get_godot_java(); ERR_FAIL_NULL_V(godot_java, FAILED); file_picker_callback = p_callback; @@ -271,7 +271,7 @@ bool DisplayServerAndroid::screen_is_kept_on() const { return keep_screen_on; } -void DisplayServerAndroid::screen_set_orientation(DisplayServer::ScreenOrientation p_orientation, int p_screen) { +void DisplayServerAndroid::screen_set_orientation(DisplayServerEnums::ScreenOrientation p_orientation, int p_screen) { p_screen = _get_screen_index(p_screen); int screen_count = get_screen_count(); ERR_FAIL_INDEX(p_screen, screen_count); @@ -282,17 +282,17 @@ void DisplayServerAndroid::screen_set_orientation(DisplayServer::ScreenOrientati godot_io_java->set_screen_orientation(p_orientation); } -DisplayServer::ScreenOrientation DisplayServerAndroid::screen_get_orientation(int p_screen) const { +DisplayServerEnums::ScreenOrientation DisplayServerAndroid::screen_get_orientation(int p_screen) const { p_screen = _get_screen_index(p_screen); int screen_count = get_screen_count(); - ERR_FAIL_INDEX_V(p_screen, screen_count, SCREEN_LANDSCAPE); + ERR_FAIL_INDEX_V(p_screen, screen_count, DisplayServerEnums::SCREEN_LANDSCAPE); GodotIOJavaWrapper *godot_io_java = OS_Android::get_singleton()->get_godot_io_java(); - ERR_FAIL_NULL_V(godot_io_java, SCREEN_LANDSCAPE); + ERR_FAIL_NULL_V(godot_io_java, DisplayServerEnums::SCREEN_LANDSCAPE); const int orientation = godot_io_java->get_screen_orientation(); - ERR_FAIL_INDEX_V_MSG(orientation, 7, SCREEN_LANDSCAPE, "Unrecognized screen orientation"); - return (ScreenOrientation)orientation; + ERR_FAIL_INDEX_V_MSG(orientation, 7, DisplayServerEnums::SCREEN_LANDSCAPE, "Unrecognized screen orientation"); + return (DisplayServerEnums::ScreenOrientation)orientation; } int DisplayServerAndroid::get_display_rotation() const { @@ -385,7 +385,7 @@ bool DisplayServerAndroid::is_touchscreen_available() const { return true; } -void DisplayServerAndroid::virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect, VirtualKeyboardType p_type, int p_max_length, int p_cursor_start, int p_cursor_end) { +void DisplayServerAndroid::virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect, DisplayServerEnums::VirtualKeyboardType p_type, int p_max_length, int p_cursor_start, int p_cursor_end) { GodotIOJavaWrapper *godot_io_java = OS_Android::get_singleton()->get_godot_io_java(); ERR_FAIL_NULL(godot_io_java); @@ -421,23 +421,23 @@ bool DisplayServerAndroid::has_hardware_keyboard() const { return godot_io_java->has_hardware_keyboard(); } -void DisplayServerAndroid::window_set_window_event_callback(const Callable &p_callable, DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { window_event_callback = p_callable; } -void DisplayServerAndroid::window_set_input_event_callback(const Callable &p_callable, DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { input_event_callback = p_callable; } -void DisplayServerAndroid::window_set_input_text_callback(const Callable &p_callable, DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { input_text_callback = p_callable; } -void DisplayServerAndroid::window_set_rect_changed_callback(const Callable &p_callable, DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { rect_changed_callback = p_callable; } -void DisplayServerAndroid::window_set_drop_files_callback(const Callable &p_callable, DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { // Not supported on Android. } @@ -452,7 +452,7 @@ void DisplayServerAndroid::_window_callback(const Callable &p_callable, bool p_d } } -void DisplayServerAndroid::send_window_event(DisplayServer::WindowEvent p_event, bool p_deferred) const { +void DisplayServerAndroid::send_window_event(DisplayServerEnums::WindowEvent p_event, bool p_deferred) const { _window_callback(window_event_callback, p_deferred, int(p_event)); } @@ -468,43 +468,43 @@ void DisplayServerAndroid::_dispatch_input_events(const Ref &p_event DisplayServerAndroid::get_singleton()->send_input_event(p_event); } -Vector DisplayServerAndroid::get_window_list() const { - Vector ret; - ret.push_back(MAIN_WINDOW_ID); +Vector DisplayServerAndroid::get_window_list() const { + Vector ret; + ret.push_back(DisplayServerEnums::MAIN_WINDOW_ID); return ret; } -DisplayServer::WindowID DisplayServerAndroid::get_window_at_screen_position(const Point2i &p_position) const { - return MAIN_WINDOW_ID; +DisplayServerEnums::WindowID DisplayServerAndroid::get_window_at_screen_position(const Point2i &p_position) const { + return DisplayServerEnums::MAIN_WINDOW_ID; } -int64_t DisplayServerAndroid::window_get_native_handle(HandleType p_handle_type, WindowID p_window) const { - ERR_FAIL_COND_V(p_window != MAIN_WINDOW_ID, 0); +int64_t DisplayServerAndroid::window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window) const { + ERR_FAIL_COND_V(p_window != DisplayServerEnums::MAIN_WINDOW_ID, 0); switch (p_handle_type) { - case WINDOW_HANDLE: { + case DisplayServerEnums::WINDOW_HANDLE: { return reinterpret_cast(static_cast(OS::get_singleton())->get_godot_java()->get_activity()); } - case WINDOW_VIEW: { + case DisplayServerEnums::WINDOW_VIEW: { return 0; // Not supported. } #ifdef GLES3_ENABLED - case DISPLAY_HANDLE: { + case DisplayServerEnums::DISPLAY_HANDLE: { if (rendering_driver == "opengl3") { return reinterpret_cast(eglGetCurrentDisplay()); } return 0; } - case OPENGL_CONTEXT: { + case DisplayServerEnums::OPENGL_CONTEXT: { if (rendering_driver == "opengl3") { return reinterpret_cast(eglGetCurrentContext()); } return 0; } - case EGL_DISPLAY: { + case DisplayServerEnums::EGL_DISPLAY: { // @todo Find a way to get this from the Java side. return 0; } - case EGL_CONFIG: { + case DisplayServerEnums::EGL_CONFIG: { // @todo Find a way to get this from the Java side. return 0; } @@ -515,95 +515,95 @@ int64_t DisplayServerAndroid::window_get_native_handle(HandleType p_handle_type, } } -void DisplayServerAndroid::window_attach_instance_id(ObjectID p_instance, DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window) { window_attached_instance_id = p_instance; } -ObjectID DisplayServerAndroid::window_get_attached_instance_id(DisplayServer::WindowID p_window) const { +ObjectID DisplayServerAndroid::window_get_attached_instance_id(DisplayServerEnums::WindowID p_window) const { return window_attached_instance_id; } -void DisplayServerAndroid::window_set_title(const String &p_title, DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window) { // Not supported on Android. } -int DisplayServerAndroid::window_get_current_screen(DisplayServer::WindowID p_window) const { - ERR_FAIL_COND_V(p_window != MAIN_WINDOW_ID, INVALID_SCREEN); +int DisplayServerAndroid::window_get_current_screen(DisplayServerEnums::WindowID p_window) const { + ERR_FAIL_COND_V(p_window != DisplayServerEnums::MAIN_WINDOW_ID, DisplayServerEnums::INVALID_SCREEN); return 0; } -void DisplayServerAndroid::window_set_current_screen(int p_screen, DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window) { // Not supported on Android. } -Point2i DisplayServerAndroid::window_get_position(DisplayServer::WindowID p_window) const { +Point2i DisplayServerAndroid::window_get_position(DisplayServerEnums::WindowID p_window) const { return Point2i(); } -Point2i DisplayServerAndroid::window_get_position_with_decorations(DisplayServer::WindowID p_window) const { +Point2i DisplayServerAndroid::window_get_position_with_decorations(DisplayServerEnums::WindowID p_window) const { return Point2i(); } -void DisplayServerAndroid::window_set_position(const Point2i &p_position, DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window) { // Not supported on Android. } -void DisplayServerAndroid::window_set_transient(DisplayServer::WindowID p_window, DisplayServer::WindowID p_parent) { +void DisplayServerAndroid::window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) { // Not supported on Android. } -void DisplayServerAndroid::window_set_max_size(const Size2i p_size, DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { // Not supported on Android. } -Size2i DisplayServerAndroid::window_get_max_size(DisplayServer::WindowID p_window) const { +Size2i DisplayServerAndroid::window_get_max_size(DisplayServerEnums::WindowID p_window) const { return Size2i(); } -void DisplayServerAndroid::window_set_min_size(const Size2i p_size, DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { // Not supported on Android. } -Size2i DisplayServerAndroid::window_get_min_size(DisplayServer::WindowID p_window) const { +Size2i DisplayServerAndroid::window_get_min_size(DisplayServerEnums::WindowID p_window) const { return Size2i(); } -void DisplayServerAndroid::window_set_size(const Size2i p_size, DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { // Not supported on Android. } -Size2i DisplayServerAndroid::window_get_size(DisplayServer::WindowID p_window) const { +Size2i DisplayServerAndroid::window_get_size(DisplayServerEnums::WindowID p_window) const { return OS_Android::get_singleton()->get_display_size(); } -Size2i DisplayServerAndroid::window_get_size_with_decorations(DisplayServer::WindowID p_window) const { +Size2i DisplayServerAndroid::window_get_size_with_decorations(DisplayServerEnums::WindowID p_window) const { return OS_Android::get_singleton()->get_display_size(); } -void DisplayServerAndroid::window_set_mode(DisplayServer::WindowMode p_mode, DisplayServer::WindowID p_window) { - OS_Android::get_singleton()->get_godot_java()->enable_immersive_mode(p_mode == WINDOW_MODE_FULLSCREEN || p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN); +void DisplayServerAndroid::window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window) { + OS_Android::get_singleton()->get_godot_java()->enable_immersive_mode(p_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN || p_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN); } -DisplayServer::WindowMode DisplayServerAndroid::window_get_mode(DisplayServer::WindowID p_window) const { +DisplayServerEnums::WindowMode DisplayServerAndroid::window_get_mode(DisplayServerEnums::WindowID p_window) const { if (OS_Android::get_singleton()->get_godot_java()->is_in_immersive_mode()) { - return WINDOW_MODE_FULLSCREEN; + return DisplayServerEnums::WINDOW_MODE_FULLSCREEN; } else { - return WINDOW_MODE_MAXIMIZED; + return DisplayServerEnums::WINDOW_MODE_MAXIMIZED; } } -bool DisplayServerAndroid::window_is_maximize_allowed(DisplayServer::WindowID p_window) const { +bool DisplayServerAndroid::window_is_maximize_allowed(DisplayServerEnums::WindowID p_window) const { return false; } -void DisplayServerAndroid::window_set_flag(DisplayServer::WindowFlags p_flag, bool p_enabled, DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window) { // Not supported on Android. } -bool DisplayServerAndroid::window_get_flag(DisplayServer::WindowFlags p_flag, DisplayServer::WindowID p_window) const { - ERR_FAIL_COND_V(p_window != MAIN_WINDOW_ID, false); +bool DisplayServerAndroid::window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window) const { + ERR_FAIL_COND_V(p_window != DisplayServerEnums::MAIN_WINDOW_ID, false); switch (p_flag) { - case WindowFlags::WINDOW_FLAG_TRANSPARENT: + case DisplayServerEnums::WindowFlags::WINDOW_FLAG_TRANSPARENT: return is_window_transparency_available(); default: @@ -611,19 +611,19 @@ bool DisplayServerAndroid::window_get_flag(DisplayServer::WindowFlags p_flag, Di } } -void DisplayServerAndroid::window_request_attention(DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_request_attention(DisplayServerEnums::WindowID p_window) { // Not supported on Android. } -void DisplayServerAndroid::window_move_to_foreground(DisplayServer::WindowID p_window) { +void DisplayServerAndroid::window_move_to_foreground(DisplayServerEnums::WindowID p_window) { // Not supported on Android. } -bool DisplayServerAndroid::window_is_focused(WindowID p_window) const { +bool DisplayServerAndroid::window_is_focused(DisplayServerEnums::WindowID p_window) const { return true; } -bool DisplayServerAndroid::window_can_draw(DisplayServer::WindowID p_window) const { +bool DisplayServerAndroid::window_can_draw(DisplayServerEnums::WindowID p_window) const { return true; } @@ -654,7 +654,7 @@ Vector DisplayServerAndroid::get_rendering_drivers_func() { return drivers; } -DisplayServer *DisplayServerAndroid::create_func(const String &p_rendering_driver, DisplayServer::WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServer *DisplayServerAndroid::create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { DisplayServer *ds = memnew(DisplayServerAndroid(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_position, p_resolution, p_screen, p_context, p_parent_window, r_error)); if (r_error != OK) { if (p_rendering_driver == "vulkan") { @@ -722,11 +722,11 @@ void DisplayServerAndroid::reset_window() { #if defined(RD_ENABLED) if (rendering_context_global) { if (rendering_device) { - rendering_device->screen_free(MAIN_WINDOW_ID); + rendering_device->screen_free(DisplayServerEnums::MAIN_WINDOW_ID); } - VSyncMode last_vsync_mode = rendering_context_global->window_get_vsync_mode(MAIN_WINDOW_ID); - rendering_context_global->window_destroy(MAIN_WINDOW_ID); + DisplayServerEnums::VSyncMode last_vsync_mode = rendering_context_global->window_get_vsync_mode(DisplayServerEnums::MAIN_WINDOW_ID); + rendering_context_global->window_destroy(DisplayServerEnums::MAIN_WINDOW_ID); union { #ifdef VULKAN_ENABLED @@ -741,17 +741,17 @@ void DisplayServerAndroid::reset_window() { } #endif - if (rendering_context_global->window_create(MAIN_WINDOW_ID, &wpd) != OK) { + if (rendering_context_global->window_create(DisplayServerEnums::MAIN_WINDOW_ID, &wpd) != OK) { ERR_PRINT(vformat("Failed to reset %s window.", rendering_driver)); return; } Size2i display_size = OS_Android::get_singleton()->get_display_size(); - rendering_context_global->window_set_size(MAIN_WINDOW_ID, display_size.width, display_size.height); - rendering_context_global->window_set_vsync_mode(MAIN_WINDOW_ID, last_vsync_mode); + rendering_context_global->window_set_size(DisplayServerEnums::MAIN_WINDOW_ID, display_size.width, display_size.height); + rendering_context_global->window_set_vsync_mode(DisplayServerEnums::MAIN_WINDOW_ID, last_vsync_mode); if (rendering_device) { - rendering_device->screen_create(MAIN_WINDOW_ID); + rendering_device->screen_create(DisplayServerEnums::MAIN_WINDOW_ID); } } #endif @@ -771,7 +771,7 @@ void DisplayServerAndroid::notify_application_paused() { #endif // defined(RD_ENABLED) } -DisplayServerAndroid::DisplayServerAndroid(const String &p_rendering_driver, DisplayServer::WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServerAndroid::DisplayServerAndroid(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { rendering_driver = p_rendering_driver; keep_screen_on = GLOBAL_GET("display/window/energy_saving/keep_screen_on"); @@ -793,24 +793,24 @@ DisplayServerAndroid::DisplayServerAndroid(const String &p_rendering_driver, Dis RenderingContextDriverVulkanAndroid::WindowPlatformData wpd; wpd.window = native_window; - if (rendering_context_global->window_create(MAIN_WINDOW_ID, &wpd) != OK) { + if (rendering_context_global->window_create(DisplayServerEnums::MAIN_WINDOW_ID, &wpd) != OK) { ERR_PRINT(vformat("Failed to create %s window.", rendering_driver)); r_error = ERR_UNAVAILABLE; return; } Size2i display_size = OS_Android::get_singleton()->get_display_size(); - rendering_context_global->window_set_size(MAIN_WINDOW_ID, display_size.width, display_size.height); - rendering_context_global->window_set_vsync_mode(MAIN_WINDOW_ID, p_vsync_mode); + rendering_context_global->window_set_size(DisplayServerEnums::MAIN_WINDOW_ID, display_size.width, display_size.height); + rendering_context_global->window_set_vsync_mode(DisplayServerEnums::MAIN_WINDOW_ID, p_vsync_mode); rendering_device = memnew(RenderingDevice); - if (rendering_device->initialize(rendering_context_global, MAIN_WINDOW_ID) != OK) { + if (rendering_device->initialize(rendering_context_global, DisplayServerEnums::MAIN_WINDOW_ID) != OK) { rendering_device = nullptr; r_error = ERR_UNAVAILABLE; return; } - rendering_device->screen_create(MAIN_WINDOW_ID); + rendering_device->screen_create(DisplayServerEnums::MAIN_WINDOW_ID); RendererCompositorRD::make_current(); } @@ -859,7 +859,7 @@ void DisplayServerAndroid::process_gyroscope(const Vector3 &p_gyroscope) { } void DisplayServerAndroid::_mouse_update_mode() { - MouseMode wanted_mouse_mode = mouse_mode_override_enabled + DisplayServerEnums::MouseMode wanted_mouse_mode = mouse_mode_override_enabled ? mouse_mode_override : mouse_mode_base; @@ -870,13 +870,13 @@ void DisplayServerAndroid::_mouse_update_mode() { return; } - if (wanted_mouse_mode == MouseMode::MOUSE_MODE_HIDDEN) { + if (wanted_mouse_mode == DisplayServerEnums::MouseMode::MOUSE_MODE_HIDDEN) { OS_Android::get_singleton()->get_godot_java()->get_godot_view()->set_pointer_icon(CURSOR_TYPE_NULL); } else { cursor_set_shape(cursor_shape); } - if (wanted_mouse_mode == MouseMode::MOUSE_MODE_CAPTURED) { + if (wanted_mouse_mode == DisplayServerEnums::MouseMode::MOUSE_MODE_CAPTURED) { OS_Android::get_singleton()->get_godot_java()->get_godot_view()->request_pointer_capture(); } else { OS_Android::get_singleton()->get_godot_java()->get_godot_view()->release_pointer_capture(); @@ -885,8 +885,8 @@ void DisplayServerAndroid::_mouse_update_mode() { mouse_mode = wanted_mouse_mode; } -void DisplayServerAndroid::mouse_set_mode(MouseMode p_mode) { - ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); +void DisplayServerAndroid::mouse_set_mode(DisplayServerEnums::MouseMode p_mode) { + ERR_FAIL_INDEX(p_mode, DisplayServerEnums::MouseMode::MOUSE_MODE_MAX); if (p_mode == mouse_mode_base) { return; } @@ -894,12 +894,12 @@ void DisplayServerAndroid::mouse_set_mode(MouseMode p_mode) { _mouse_update_mode(); } -DisplayServer::MouseMode DisplayServerAndroid::mouse_get_mode() const { +DisplayServerEnums::MouseMode DisplayServerAndroid::mouse_get_mode() const { return mouse_mode; } -void DisplayServerAndroid::mouse_set_mode_override(MouseMode p_mode) { - ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); +void DisplayServerAndroid::mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) { + ERR_FAIL_INDEX(p_mode, DisplayServerEnums::MouseMode::MOUSE_MODE_MAX); if (p_mode == mouse_mode_override) { return; } @@ -907,7 +907,7 @@ void DisplayServerAndroid::mouse_set_mode_override(MouseMode p_mode) { _mouse_update_mode(); } -DisplayServer::MouseMode DisplayServerAndroid::mouse_get_mode_override() const { +DisplayServerEnums::MouseMode DisplayServerAndroid::mouse_get_mode_override() const { return mouse_mode_override; } @@ -928,7 +928,7 @@ BitField DisplayServerAndroid::mouse_get_button_state() const { return Input::get_singleton()->get_mouse_button_mask(); } -void DisplayServerAndroid::_cursor_set_shape_helper(CursorShape p_shape, bool force) { +void DisplayServerAndroid::_cursor_set_shape_helper(DisplayServerEnums::CursorShape p_shape, bool force) { if (!OS_Android::get_singleton()->get_godot_java()->get_godot_view()->can_update_pointer_icon()) { return; } @@ -938,22 +938,22 @@ void DisplayServerAndroid::_cursor_set_shape_helper(CursorShape p_shape, bool fo cursor_shape = p_shape; - if (mouse_mode == MouseMode::MOUSE_MODE_VISIBLE || mouse_mode == MouseMode::MOUSE_MODE_CONFINED) { + if (mouse_mode == DisplayServerEnums::MouseMode::MOUSE_MODE_VISIBLE || mouse_mode == DisplayServerEnums::MouseMode::MOUSE_MODE_CONFINED) { OS_Android::get_singleton()->get_godot_java()->get_godot_view()->set_pointer_icon(android_cursors[cursor_shape]); } } -void DisplayServerAndroid::cursor_set_shape(DisplayServer::CursorShape p_shape) { - ERR_FAIL_INDEX(p_shape, CURSOR_MAX); +void DisplayServerAndroid::cursor_set_shape(DisplayServerEnums::CursorShape p_shape) { + ERR_FAIL_INDEX(p_shape, DisplayServerEnums::CURSOR_MAX); _cursor_set_shape_helper(p_shape); } -DisplayServer::CursorShape DisplayServerAndroid::cursor_get_shape() const { +DisplayServerEnums::CursorShape DisplayServerAndroid::cursor_get_shape() const { return cursor_shape; } -void DisplayServerAndroid::cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) { - ERR_FAIL_INDEX(p_shape, CURSOR_MAX); +void DisplayServerAndroid::cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape, const Vector2 &p_hotspot) { + ERR_FAIL_INDEX(p_shape, DisplayServerEnums::CURSOR_MAX); String cursor_path = p_cursor.is_valid() ? p_cursor->get_path() : ""; if (!cursor_path.is_empty()) { cursor_path = ProjectSettings::get_singleton()->globalize_path(cursor_path); @@ -962,7 +962,7 @@ void DisplayServerAndroid::cursor_set_custom_image(const Ref &p_cursor _cursor_set_shape_helper(p_shape, true); } -void DisplayServerAndroid::window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window) { +void DisplayServerAndroid::window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window) { #if defined(RD_ENABLED) if (rendering_context_global) { rendering_context_global->window_set_vsync_mode(p_window, p_vsync_mode); @@ -970,13 +970,13 @@ void DisplayServerAndroid::window_set_vsync_mode(DisplayServer::VSyncMode p_vsyn #endif } -DisplayServer::VSyncMode DisplayServerAndroid::window_get_vsync_mode(WindowID p_window) const { +DisplayServerEnums::VSyncMode DisplayServerAndroid::window_get_vsync_mode(DisplayServerEnums::WindowID p_window) const { #if defined(RD_ENABLED) if (rendering_context_global) { return rendering_context_global->window_get_vsync_mode(p_window); } #endif - return DisplayServer::VSYNC_ENABLED; + return DisplayServerEnums::VSYNC_ENABLED; } void DisplayServerAndroid::reset_swap_buffers_flag() { diff --git a/platform/android/display_server_android.h b/platform/android/display_server_android.h index 745237dd81d9..c4b3f82a58ea 100644 --- a/platform/android/display_server_android.h +++ b/platform/android/display_server_android.h @@ -47,36 +47,36 @@ class DisplayServerAndroid : public DisplayServer { // https://developer.android.com/reference/android/view/PointerIcon // mapping between Godot's cursor shape to Android's' - int android_cursors[CURSOR_MAX] = { - 1000, //CURSOR_ARROW - 1008, //CURSOR_IBEAM - 1002, //CURSOR_POINTIN - 1007, //CURSOR_CROSS - 1004, //CURSOR_WAIT - 1004, //CURSOR_BUSY - 1021, //CURSOR_DRAG - 1021, //CURSOR_CAN_DRO - 1000, //CURSOR_FORBIDD (no corresponding icon in Android's icon so fallback to default) - 1015, //CURSOR_VSIZE - 1014, //CURSOR_HSIZE - 1017, //CURSOR_BDIAGSI - 1016, //CURSOR_FDIAGSI - 1020, //CURSOR_MOVE - 1015, //CURSOR_VSPLIT - 1014, //CURSOR_HSPLIT - 1003, //CURSOR_HELP + int android_cursors[DisplayServerEnums::CURSOR_MAX] = { + 1000, //DisplayServerEnums::CURSOR_ARROW + 1008, //DisplayServerEnums::CURSOR_IBEAM + 1002, //DisplayServerEnums::CURSOR_POINTIN + 1007, //DisplayServerEnums::CURSOR_CROSS + 1004, //DisplayServerEnums::CURSOR_WAIT + 1004, //DisplayServerEnums::CURSOR_BUSY + 1021, //DisplayServerEnums::CURSOR_DRAG + 1021, //DisplayServerEnums::CURSOR_CAN_DRO + 1000, //DisplayServerEnums::CURSOR_FORBIDD (no corresponding icon in Android's icon so fallback to default) + 1015, //DisplayServerEnums::CURSOR_VSIZE + 1014, //DisplayServerEnums::CURSOR_HSIZE + 1017, //DisplayServerEnums::CURSOR_BDIAGSI + 1016, //DisplayServerEnums::CURSOR_FDIAGSI + 1020, //DisplayServerEnums::CURSOR_MOVE + 1015, //DisplayServerEnums::CURSOR_VSPLIT + 1014, //DisplayServerEnums::CURSOR_HSPLIT + 1003, //DisplayServerEnums::CURSOR_HELP }; const int CURSOR_TYPE_NULL = 0; - MouseMode mouse_mode = MouseMode::MOUSE_MODE_VISIBLE; - MouseMode mouse_mode_base = MouseMode::MOUSE_MODE_VISIBLE; - MouseMode mouse_mode_override = MouseMode::MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode = DisplayServerEnums::MouseMode::MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode_base = DisplayServerEnums::MouseMode::MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode_override = DisplayServerEnums::MouseMode::MOUSE_MODE_VISIBLE; bool mouse_mode_override_enabled = false; void _mouse_update_mode(); bool keep_screen_on; bool swap_buffers_flag; - CursorShape cursor_shape = CursorShape::CURSOR_ARROW; + DisplayServerEnums::CursorShape cursor_shape = DisplayServerEnums::CursorShape::CURSOR_ARROW; #if defined(RD_ENABLED) RenderingDevice *rendering_device = nullptr; @@ -106,7 +106,7 @@ class DisplayServerAndroid : public DisplayServer { public: static DisplayServerAndroid *get_singleton(); - virtual bool has_feature(Feature p_feature) const override; + virtual bool has_feature(DisplayServerEnums::Feature p_feature) const override; virtual String get_name() const override; virtual bool tts_is_speaking() const override; @@ -133,7 +133,7 @@ class DisplayServerAndroid : public DisplayServer { virtual Error dialog_input_text(String p_title, String p_description, String p_partial, const Callable &p_callback) override; void emit_input_dialog_callback(String p_text); - virtual Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, const FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, WindowID p_window_id) override; + virtual Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, const DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) override; void emit_file_picker_callback(bool p_ok, const Vector &p_selected_paths); virtual Color get_accent_color() const override; @@ -145,83 +145,83 @@ class DisplayServerAndroid : public DisplayServer { virtual void screen_set_keep_on(bool p_enable) override; virtual bool screen_is_kept_on() const override; - virtual void screen_set_orientation(ScreenOrientation p_orientation, int p_screen = SCREEN_OF_MAIN_WINDOW) override; - virtual ScreenOrientation screen_get_orientation(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual void screen_set_orientation(DisplayServerEnums::ScreenOrientation p_orientation, int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) override; + virtual DisplayServerEnums::ScreenOrientation screen_get_orientation(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; int get_display_rotation() const; virtual int get_screen_count() const override; virtual int get_primary_screen() const override; - virtual Point2i screen_get_position(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Size2i screen_get_size(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Rect2i screen_get_usable_rect(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual int screen_get_dpi(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_scale(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_refresh_rate(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual Point2i screen_get_position(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Size2i screen_get_size(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Rect2i screen_get_usable_rect(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual int screen_get_dpi(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_scale(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_refresh_rate(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; virtual bool is_touchscreen_available() const override; - virtual void virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2(), VirtualKeyboardType p_type = KEYBOARD_TYPE_DEFAULT, int p_max_length = -1, int p_cursor_start = -1, int p_cursor_end = -1) override; + virtual void virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2(), DisplayServerEnums::VirtualKeyboardType p_type = DisplayServerEnums::KEYBOARD_TYPE_DEFAULT, int p_max_length = -1, int p_cursor_start = -1, int p_cursor_end = -1) override; virtual void virtual_keyboard_hide() override; virtual int virtual_keyboard_get_height() const override; virtual bool has_hardware_keyboard() const override; virtual void set_hardware_keyboard_connection_change_callback(const Callable &p_callable) override; void emit_hardware_keyboard_connection_changed(bool p_connected); - virtual void window_set_window_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_text_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_drop_files_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - void send_window_event(WindowEvent p_event, bool p_deferred = false) const; + void send_window_event(DisplayServerEnums::WindowEvent p_event, bool p_deferred = false) const; void send_input_event(const Ref &p_event) const; void send_input_text(const String &p_text) const; - virtual Vector get_window_list() const override; - virtual WindowID get_window_at_screen_position(const Point2i &p_position) const override; + virtual Vector get_window_list() const override; + virtual DisplayServerEnums::WindowID get_window_at_screen_position(const Point2i &p_position) const override; - virtual int64_t window_get_native_handle(HandleType p_handle_type, WindowID p_window = MAIN_WINDOW_ID) const override; + virtual int64_t window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_attach_instance_id(ObjectID p_instance, WindowID p_window = MAIN_WINDOW_ID) override; - virtual ObjectID window_get_attached_instance_id(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_title(const String &p_title, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual ObjectID window_get_attached_instance_id(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual int window_get_current_screen(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_current_screen(int p_screen, WindowID p_window = MAIN_WINDOW_ID) override; + virtual int window_get_current_screen(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual Point2i window_get_position(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Point2i window_get_position_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_position(const Point2i &p_position, WindowID p_window = MAIN_WINDOW_ID) override; + virtual Point2i window_get_position(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Point2i window_get_position_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_transient(WindowID p_window, WindowID p_parent) override; + virtual void window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) override; - virtual void window_set_max_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_max_size(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_max_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_min_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_min_size(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_min_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_size(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Size2i window_get_size_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Size2i window_get_size_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_mode(WindowMode p_mode, WindowID p_window = MAIN_WINDOW_ID) override; - virtual WindowMode window_get_mode(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::WindowMode window_get_mode(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual bool window_is_maximize_allowed(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_is_maximize_allowed(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_get_flag(WindowFlags p_flag, WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_request_attention(WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_move_to_foreground(WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_is_focused(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_request_attention(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_move_to_foreground(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_is_focused(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual bool window_can_draw(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_can_draw(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; virtual bool can_any_window_draw() const override; - virtual void window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window = MAIN_WINDOW_ID) override; - virtual DisplayServer::VSyncMode window_get_vsync_mode(WindowID p_vsync_mode) const override; + virtual void window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::VSyncMode window_get_vsync_mode(DisplayServerEnums::WindowID p_vsync_mode) const override; virtual void window_set_color(const Color &p_color) override; @@ -232,19 +232,19 @@ class DisplayServerAndroid : public DisplayServer { void process_magnetometer(const Vector3 &p_magnetometer); void process_gyroscope(const Vector3 &p_gyroscope); - void _cursor_set_shape_helper(CursorShape p_shape, bool force = false); - virtual void cursor_set_shape(CursorShape p_shape) override; - virtual CursorShape cursor_get_shape() const override; - virtual void cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape = CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()) override; + void _cursor_set_shape_helper(DisplayServerEnums::CursorShape p_shape, bool force = false); + virtual void cursor_set_shape(DisplayServerEnums::CursorShape p_shape) override; + virtual DisplayServerEnums::CursorShape cursor_get_shape() const override; + virtual void cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape = DisplayServerEnums::CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()) override; - virtual void mouse_set_mode(MouseMode p_mode) override; - virtual MouseMode mouse_get_mode() const override; - virtual void mouse_set_mode_override(MouseMode p_mode) override; - virtual MouseMode mouse_get_mode_override() const override; + virtual void mouse_set_mode(DisplayServerEnums::MouseMode p_mode) override; + virtual DisplayServerEnums::MouseMode mouse_get_mode() const override; + virtual void mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) override; + virtual DisplayServerEnums::MouseMode mouse_get_mode_override() const override; virtual void mouse_set_mode_override_enabled(bool p_override_enabled) override; virtual bool mouse_is_mode_override_enabled() const override; - static DisplayServer *create_func(const String &p_rendering_driver, WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + static DisplayServer *create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); static Vector get_rendering_drivers_func(); static void register_android_driver(); @@ -269,6 +269,6 @@ class DisplayServerAndroid : public DisplayServer { virtual bool is_window_transparency_available() const override; - DisplayServerAndroid(const String &p_rendering_driver, WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + DisplayServerAndroid(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); ~DisplayServerAndroid(); }; diff --git a/platform/android/export/export_plugin.cpp b/platform/android/export/export_plugin.cpp index b4f4b8948447..18c1510d0656 100644 --- a/platform/android/export/export_plugin.cpp +++ b/platform/android/export/export_plugin.cpp @@ -1220,7 +1220,7 @@ void EditorExportPlatformAndroid::_fix_manifest(const Ref &p String package_name = p_preset->get("package/unique_name"); const int screen_orientation = - _get_android_orientation_value(DisplayServer::ScreenOrientation(int(get_project_setting(p_preset, "display/window/handheld/orientation")))); + _get_android_orientation_value(DisplayServerEnums::ScreenOrientation(int(get_project_setting(p_preset, "display/window/handheld/orientation")))); bool screen_support_small = p_preset->get("screen/support_small"); bool screen_support_normal = p_preset->get("screen/support_normal"); diff --git a/platform/android/export/gradle_export_util.cpp b/platform/android/export/gradle_export_util.cpp index e6c34cb072e0..90c5acfd70a9 100644 --- a/platform/android/export/gradle_export_util.cpp +++ b/platform/android/export/gradle_export_util.cpp @@ -33,41 +33,41 @@ #include "core/string/translation_server.h" #include "modules/regex/regex.h" -int _get_android_orientation_value(DisplayServer::ScreenOrientation screen_orientation) { +int _get_android_orientation_value(DisplayServerEnums::ScreenOrientation screen_orientation) { switch (screen_orientation) { - case DisplayServer::SCREEN_PORTRAIT: + case DisplayServerEnums::SCREEN_PORTRAIT: return 1; - case DisplayServer::SCREEN_REVERSE_LANDSCAPE: + case DisplayServerEnums::SCREEN_REVERSE_LANDSCAPE: return 8; - case DisplayServer::SCREEN_REVERSE_PORTRAIT: + case DisplayServerEnums::SCREEN_REVERSE_PORTRAIT: return 9; - case DisplayServer::SCREEN_SENSOR_LANDSCAPE: + case DisplayServerEnums::SCREEN_SENSOR_LANDSCAPE: return 11; - case DisplayServer::SCREEN_SENSOR_PORTRAIT: + case DisplayServerEnums::SCREEN_SENSOR_PORTRAIT: return 12; - case DisplayServer::SCREEN_SENSOR: + case DisplayServerEnums::SCREEN_SENSOR: return 13; - case DisplayServer::SCREEN_LANDSCAPE: + case DisplayServerEnums::SCREEN_LANDSCAPE: default: return 0; } } -String _get_android_orientation_label(DisplayServer::ScreenOrientation screen_orientation) { +String _get_android_orientation_label(DisplayServerEnums::ScreenOrientation screen_orientation) { switch (screen_orientation) { - case DisplayServer::SCREEN_PORTRAIT: + case DisplayServerEnums::SCREEN_PORTRAIT: return "portrait"; - case DisplayServer::SCREEN_REVERSE_LANDSCAPE: + case DisplayServerEnums::SCREEN_REVERSE_LANDSCAPE: return "reverseLandscape"; - case DisplayServer::SCREEN_REVERSE_PORTRAIT: + case DisplayServerEnums::SCREEN_REVERSE_PORTRAIT: return "reversePortrait"; - case DisplayServer::SCREEN_SENSOR_LANDSCAPE: + case DisplayServerEnums::SCREEN_SENSOR_LANDSCAPE: return "userLandscape"; - case DisplayServer::SCREEN_SENSOR_PORTRAIT: + case DisplayServerEnums::SCREEN_SENSOR_PORTRAIT: return "userPortrait"; - case DisplayServer::SCREEN_SENSOR: + case DisplayServerEnums::SCREEN_SENSOR: return "fullUser"; - case DisplayServer::SCREEN_LANDSCAPE: + case DisplayServerEnums::SCREEN_LANDSCAPE: default: return "landscape"; } @@ -306,7 +306,7 @@ String _get_activity_tag(const Ref &p_export_platform, con } // Update the GodotApp activity tag. - String orientation = _get_android_orientation_label(DisplayServer::ScreenOrientation(int(p_export_platform->get_project_setting(p_preset, "display/window/handheld/orientation")))); + String orientation = _get_android_orientation_label(DisplayServerEnums::ScreenOrientation(int(p_export_platform->get_project_setting(p_preset, "display/window/handheld/orientation")))); String manifest_activity_text = vformat( " @@ -77,9 +77,9 @@ struct MetadataInfo { String value; }; -int _get_android_orientation_value(DisplayServer::ScreenOrientation screen_orientation); +int _get_android_orientation_value(DisplayServerEnums::ScreenOrientation screen_orientation); -String _get_android_orientation_label(DisplayServer::ScreenOrientation screen_orientation); +String _get_android_orientation_label(DisplayServerEnums::ScreenOrientation screen_orientation); int _get_app_category_value(int category_index); diff --git a/platform/android/java/lib/src/main/java/org/godotengine/godot/input/GodotEditText.java b/platform/android/java/lib/src/main/java/org/godotengine/godot/input/GodotEditText.java index 770364e5645a..21d0e2c38857 100644 --- a/platform/android/java/lib/src/main/java/org/godotengine/godot/input/GodotEditText.java +++ b/platform/android/java/lib/src/main/java/org/godotengine/godot/input/GodotEditText.java @@ -57,7 +57,7 @@ public class GodotEditText extends EditText { private final static int HANDLER_OPEN_IME_KEYBOARD = 2; private final static int HANDLER_CLOSE_IME_KEYBOARD = 3; - // Enum must be kept up-to-date with DisplayServer::VirtualKeyboardType + // Enum must be kept up-to-date with DisplayServerEnums::VirtualKeyboardType public enum VirtualKeyboardType { KEYBOARD_TYPE_DEFAULT, KEYBOARD_TYPE_MULTILINE, diff --git a/platform/android/java/lib/src/main/java/org/godotengine/godot/tts/GodotTTS.java b/platform/android/java/lib/src/main/java/org/godotengine/godot/tts/GodotTTS.java index bba17a283ea3..62a26d2e73ca 100644 --- a/platform/android/java/lib/src/main/java/org/godotengine/godot/tts/GodotTTS.java +++ b/platform/android/java/lib/src/main/java/org/godotengine/godot/tts/GodotTTS.java @@ -57,7 +57,7 @@ */ @Keep public class GodotTTS extends UtteranceProgressListener implements TextToSpeech.OnInitListener { - // Note: These constants must be in sync with DisplayServer::TTSUtteranceEvent enum from "servers/display/display_server.h". + // Note: These constants must be in sync with DisplayServerEnums::TTSUtteranceEvent enum from "servers/display/display_server.h". final private static int EVENT_START = 0; final private static int EVENT_END = 1; final private static int EVENT_CANCEL = 2; diff --git a/platform/android/java_godot_lib_jni.cpp b/platform/android/java_godot_lib_jni.cpp index d585ca48ccfe..44cae7cbb894 100644 --- a/platform/android/java_godot_lib_jni.cpp +++ b/platform/android/java_godot_lib_jni.cpp @@ -273,7 +273,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_back(JNIEnv *env, jcl } if (DisplayServerAndroid *dsa = Object::cast_to(DisplayServer::get_singleton())) { - dsa->send_window_event(DisplayServer::WINDOW_EVENT_GO_BACK_REQUEST); + dsa->send_window_event(DisplayServerEnums::WINDOW_EVENT_GO_BACK_REQUEST); } } diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp index 23500025e46a..77482ec86083 100644 --- a/platform/android/os_android.cpp +++ b/platform/android/os_android.cpp @@ -415,7 +415,7 @@ void OS_Android::_on_main_screen_changed(const String &p_screen_name) { #endif void OS_Android::main_loop_focusout() { - DisplayServerAndroid::get_singleton()->send_window_event(DisplayServer::WINDOW_EVENT_FOCUS_OUT); + DisplayServerAndroid::get_singleton()->send_window_event(DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT); if (OS::get_singleton()->get_main_loop()) { OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_APPLICATION_FOCUS_OUT); } @@ -423,7 +423,7 @@ void OS_Android::main_loop_focusout() { } void OS_Android::main_loop_focusin() { - DisplayServerAndroid::get_singleton()->send_window_event(DisplayServer::WINDOW_EVENT_FOCUS_IN); + DisplayServerAndroid::get_singleton()->send_window_event(DisplayServerEnums::WINDOW_EVENT_FOCUS_IN); if (OS::get_singleton()->get_main_loop()) { OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_APPLICATION_FOCUS_IN); } diff --git a/platform/android/tts_android.cpp b/platform/android/tts_android.cpp index 352ce175e26e..142ef4de4a11 100644 --- a/platform/android/tts_android.cpp +++ b/platform/android/tts_android.cpp @@ -34,6 +34,8 @@ #include "os_android.h" #include "thread_jandroid.h" +#include "servers/display/display_server.h" + bool TTS_Android::initialized = false; jobject TTS_Android::tts = nullptr; jclass TTS_Android::cls = nullptr; @@ -152,7 +154,7 @@ void TTS_Android::_java_utterance_callback(int p_event, int64_t p_id, int p_pos) ERR_FAIL_COND_MSG(!initialized || tts == nullptr, "Text to Speech not initialized."); if (ids.has(p_id)) { int pos = 0; - if ((DisplayServer::TTSUtteranceEvent)p_event == DisplayServer::TTS_UTTERANCE_BOUNDARY) { + if ((DisplayServerEnums::TTSUtteranceEvent)p_event == DisplayServerEnums::TTS_UTTERANCE_BOUNDARY) { // Convert position from UTF-16 to UTF-32. const Char16String &string = ids[p_id]; for (int i = 0; i < MIN(p_pos, string.length()); i++) { @@ -162,10 +164,10 @@ void TTS_Android::_java_utterance_callback(int p_event, int64_t p_id, int p_pos) } pos++; } - } else if ((DisplayServer::TTSUtteranceEvent)p_event != DisplayServer::TTS_UTTERANCE_STARTED) { + } else if ((DisplayServerEnums::TTSUtteranceEvent)p_event != DisplayServerEnums::TTS_UTTERANCE_STARTED) { ids.erase(p_id); } - DisplayServer::get_singleton()->tts_post_utterance_event((DisplayServer::TTSUtteranceEvent)p_event, p_id, pos); + DisplayServer::get_singleton()->tts_post_utterance_event((DisplayServerEnums::TTSUtteranceEvent)p_event, p_id, pos); } } @@ -240,7 +242,7 @@ void TTS_Android::speak(const String &p_text, const String &p_voice, int p_volum } if (p_text.is_empty()) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, p_utterance_id); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, p_utterance_id); return; } @@ -290,7 +292,7 @@ void TTS_Android::stop() { } ERR_FAIL_COND_MSG(!initialized || tts == nullptr, "Text to Speech not initialized."); for (const KeyValue &E : ids) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, E.key); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, E.key); } ids.clear(); diff --git a/platform/android/tts_android.h b/platform/android/tts_android.h index c813d67db191..4e56fa6fe2aa 100644 --- a/platform/android/tts_android.h +++ b/platform/android/tts_android.h @@ -34,7 +34,6 @@ #include "core/string/ustring.h" #include "core/templates/hash_map.h" #include "core/variant/array.h" -#include "servers/display/display_server.h" #include diff --git a/platform/ios/display_server_ios.h b/platform/ios/display_server_ios.h index e196e7947179..01f16b0f2bb0 100644 --- a/platform/ios/display_server_ios.h +++ b/platform/ios/display_server_ios.h @@ -37,20 +37,20 @@ class DisplayServerIOS final : public DisplayServerAppleEmbedded { _THREAD_SAFE_CLASS_ - DisplayServerIOS(const String &p_rendering_driver, DisplayServer::WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + DisplayServerIOS(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); ~DisplayServerIOS(); public: static DisplayServerIOS *get_singleton(); static void register_ios_driver(); - static DisplayServer *create_func(const String &p_rendering_driver, WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + static DisplayServer *create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); virtual String get_name() const override; - virtual int screen_get_dpi(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_scale(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_refresh_rate(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual int screen_get_dpi(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_scale(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_refresh_rate(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; protected: virtual bool _screen_hdr_is_supported() const override; diff --git a/platform/ios/display_server_ios.mm b/platform/ios/display_server_ios.mm index ae3f613bdca0..ee86f7108c93 100644 --- a/platform/ios/display_server_ios.mm +++ b/platform/ios/display_server_ios.mm @@ -39,7 +39,7 @@ return (DisplayServerIOS *)DisplayServerAppleEmbedded::get_singleton(); } -DisplayServerIOS::DisplayServerIOS(const String &p_rendering_driver, WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) : +DisplayServerIOS::DisplayServerIOS(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) : DisplayServerAppleEmbedded(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_position, p_resolution, p_screen, p_context, p_parent_window, r_error) { // See: https://github.com/godotengine/godot/pull/106814#discussion_r2854262156 for why this was set to 203 nits. hardware_reference_luminance_nits = 203.0f; @@ -48,7 +48,7 @@ DisplayServerIOS::~DisplayServerIOS() { } -DisplayServer *DisplayServerIOS::create_func(const String &p_rendering_driver, WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServer *DisplayServerIOS::create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { return memnew(DisplayServerIOS(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_position, p_resolution, p_screen, p_context, p_parent_window, r_error)); } diff --git a/platform/linuxbsd/freedesktop_portal_desktop.cpp b/platform/linuxbsd/freedesktop_portal_desktop.cpp index cdb1d985632a..5f43167a5a17 100644 --- a/platform/linuxbsd/freedesktop_portal_desktop.cpp +++ b/platform/linuxbsd/freedesktop_portal_desktop.cpp @@ -37,7 +37,9 @@ #include "core/object/callable_method_pointer.h" #include "core/os/os.h" #include "core/string/ustring.h" +#include "core/variant/typed_array.h" #include "core/variant/variant.h" +#include "servers/display/display_server.h" #ifdef SOWRAP_ENABLED #include "dbus-so_wrap.h" @@ -680,12 +682,12 @@ bool FreeDesktopPortalDesktop::send_request(DBusMessage *p_message, const String return true; } -Error FreeDesktopPortalDesktop::file_dialog_show(DisplayServer::WindowID p_window_id, const String &p_xid, const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, DisplayServer::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, bool p_options_in_cb) { +Error FreeDesktopPortalDesktop::file_dialog_show(DisplayServerEnums::WindowID p_window_id, const String &p_xid, const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, bool p_options_in_cb) { if (unsupported) { return FAILED; } - ERR_FAIL_INDEX_V(int(p_mode), DisplayServer::FILE_DIALOG_MODE_SAVE_MAX, FAILED); + ERR_FAIL_INDEX_V(int(p_mode), DisplayServerEnums::FILE_DIALOG_MODE_SAVE_MAX, FAILED); ERR_FAIL_NULL_V(monitor_connection, FAILED); Vector filter_names; @@ -739,7 +741,7 @@ Error FreeDesktopPortalDesktop::file_dialog_show(DisplayServer::WindowID p_windo // Generate FileChooser message. const char *method = nullptr; - if (p_mode == DisplayServer::FILE_DIALOG_MODE_SAVE_FILE) { + if (p_mode == DisplayServerEnums::FILE_DIALOG_MODE_SAVE_FILE) { method = "SaveFile"; } else { method = "OpenFile"; @@ -757,13 +759,13 @@ Error FreeDesktopPortalDesktop::file_dialog_show(DisplayServer::WindowID p_windo dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "{sv}", &arr_iter); append_dbus_dict_string(&arr_iter, "handle_token", token); - append_dbus_dict_bool(&arr_iter, "multiple", p_mode == DisplayServer::FILE_DIALOG_MODE_OPEN_FILES); - append_dbus_dict_bool(&arr_iter, "directory", p_mode == DisplayServer::FILE_DIALOG_MODE_OPEN_DIR); + append_dbus_dict_bool(&arr_iter, "multiple", p_mode == DisplayServerEnums::FILE_DIALOG_MODE_OPEN_FILES); + append_dbus_dict_bool(&arr_iter, "directory", p_mode == DisplayServerEnums::FILE_DIALOG_MODE_OPEN_DIR); append_dbus_dict_filters(&arr_iter, filter_names, filter_exts, filter_mimes); append_dbus_dict_options(&arr_iter, p_options, fd.option_ids); append_dbus_dict_string(&arr_iter, "current_folder", p_current_directory, true); - if (p_mode == DisplayServer::FILE_DIALOG_MODE_SAVE_FILE) { + if (p_mode == DisplayServerEnums::FILE_DIALOG_MODE_SAVE_FILE) { append_dbus_dict_string(&arr_iter, "current_name", p_filename); } @@ -948,7 +950,7 @@ void FreeDesktopPortalDesktop::_thread_monitor(void *p_ud) { cb.opt_in_cb = fd.opt_in_cb; portal->pending_file_cbs.push_back(cb); } - if (fd.prev_focus != DisplayServer::INVALID_WINDOW_ID) { + if (fd.prev_focus != DisplayServerEnums::INVALID_WINDOW_ID) { callable_mp(DisplayServer::get_singleton(), &DisplayServer::window_move_to_foreground).call_deferred(fd.prev_focus); } } diff --git a/platform/linuxbsd/freedesktop_portal_desktop.h b/platform/linuxbsd/freedesktop_portal_desktop.h index aca41acc1d46..3ae27274f38a 100644 --- a/platform/linuxbsd/freedesktop_portal_desktop.h +++ b/platform/linuxbsd/freedesktop_portal_desktop.h @@ -32,9 +32,10 @@ #ifdef DBUS_ENABLED +#include "core/object/object.h" #include "core/os/thread.h" #include "core/os/thread_safe.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" struct DBusMessage; struct DBusConnection; @@ -87,7 +88,7 @@ class FreeDesktopPortalDesktop : public Object { struct FileDialogData { Vector filter_names; HashMap option_ids; - DisplayServer::WindowID prev_focus = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID prev_focus = DisplayServerEnums::INVALID_WINDOW_ID; Callable callback; String filter; String path; @@ -132,7 +133,7 @@ class FreeDesktopPortalDesktop : public Object { bool is_inhibit_supported(); // org.freedesktop.portal.FileChooser methods. - Error file_dialog_show(DisplayServer::WindowID p_window_id, const String &p_xid, const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, DisplayServer::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, bool p_options_in_cb); + Error file_dialog_show(DisplayServerEnums::WindowID p_window_id, const String &p_xid, const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, bool p_options_in_cb); void process_callbacks(); // org.freedesktop.portal.Settings methods. diff --git a/platform/linuxbsd/tts_linux.cpp b/platform/linuxbsd/tts_linux.cpp index 5be46ee86a5e..11b67bfee539 100644 --- a/platform/linuxbsd/tts_linux.cpp +++ b/platform/linuxbsd/tts_linux.cpp @@ -32,6 +32,7 @@ #include "core/config/project_settings.h" #include "core/object/callable_method_pointer.h" +#include "servers/display/display_server.h" #include "servers/text/text_server.h" TTS_Linux *TTS_Linux::singleton = nullptr; @@ -91,7 +92,7 @@ void TTS_Linux::_speech_index_mark(int p_msg_id, int p_type, const String &p_ind _THREAD_SAFE_METHOD_ if (ids.has(p_msg_id)) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_BOUNDARY, ids[p_msg_id], p_index_mark.to_int()); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_BOUNDARY, ids[p_msg_id], p_index_mark.to_int()); } } @@ -125,19 +126,19 @@ void TTS_Linux::_speech_event(int p_msg_id, int p_type) { if (!paused && ids.has(p_msg_id)) { if ((SPDNotificationType)p_type == SPD_EVENT_END) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_ENDED, ids[p_msg_id]); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_ENDED, ids[p_msg_id]); ids.erase(p_msg_id); last_msg_id = -1; speaking = false; } else if ((SPDNotificationType)p_type == SPD_EVENT_CANCEL) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, ids[p_msg_id]); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, ids[p_msg_id]); ids.erase(p_msg_id); last_msg_id = -1; speaking = false; } } if (!speaking && queue.size() > 0) { - DisplayServer::TTSUtterance &message = queue.front()->get(); + TTSUtterance &message = queue.front()->get(); // Inject index mark after each word. String text; @@ -175,7 +176,7 @@ void TTS_Linux::_speech_event(int p_msg_id, int p_type) { spd_set_data_mode(synth, SPD_DATA_SSML); last_msg_id = spd_say(synth, SPD_TEXT, text.utf8().get_data()); ids[last_msg_id] = message.id; - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_STARTED, message.id); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_STARTED, message.id); queue.pop_front(); speaking = true; @@ -217,11 +218,11 @@ void TTS_Linux::speak(const String &p_text, const String &p_voice, int p_volume, } if (p_text.is_empty()) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, p_utterance_id); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, p_utterance_id); return; } - DisplayServer::TTSUtterance message; + TTSUtterance message; message.text = p_text; message.voice = p_voice; message.volume = CLAMP(p_volume, 0, 100); @@ -258,11 +259,11 @@ void TTS_Linux::stop() { _THREAD_SAFE_METHOD_ ERR_FAIL_NULL(synth); - for (DisplayServer::TTSUtterance &message : queue) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, message.id); + for (TTSUtterance &message : queue) { + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, message.id); } if ((last_msg_id != -1) && ids.has(last_msg_id)) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, ids[last_msg_id]); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, ids[last_msg_id]); } queue.clear(); ids.clear(); diff --git a/platform/linuxbsd/tts_linux.h b/platform/linuxbsd/tts_linux.h index 42647b8acebb..5bf366089d14 100644 --- a/platform/linuxbsd/tts_linux.h +++ b/platform/linuxbsd/tts_linux.h @@ -30,13 +30,13 @@ #pragma once +#include "core/object/object.h" #include "core/os/thread.h" #include "core/os/thread_safe.h" #include "core/string/ustring.h" #include "core/templates/hash_map.h" #include "core/templates/list.h" #include "core/variant/array.h" -#include "servers/display/display_server.h" #ifdef SOWRAP_ENABLED #include "speechd-so_wrap.h" @@ -44,11 +44,13 @@ #include #endif +struct TTSUtterance; + class TTS_Linux : public Object { GDSOFTCLASS(TTS_Linux, Object); _THREAD_SAFE_CLASS_ - List queue; + List queue; SPDConnection *synth = nullptr; bool speaking = false; bool paused = false; diff --git a/platform/linuxbsd/wayland/display_server_wayland.cpp b/platform/linuxbsd/wayland/display_server_wayland.cpp index f9c98a4b341c..711617ea1f15 100644 --- a/platform/linuxbsd/wayland/display_server_wayland.cpp +++ b/platform/linuxbsd/wayland/display_server_wayland.cpp @@ -84,19 +84,19 @@ #define WAYLAND_MAX_FRAME_TIME_US (1'000'000) -String DisplayServerWayland::_get_app_id_from_context(Context p_context) { +String DisplayServerWayland::_get_app_id_from_context(DisplayServerEnums::Context p_context) { String app_id; switch (p_context) { - case CONTEXT_EDITOR: { + case DisplayServerEnums::CONTEXT_EDITOR: { app_id = "org.godotengine.Editor"; } break; - case CONTEXT_PROJECTMAN: { + case DisplayServerEnums::CONTEXT_PROJECTMAN: { app_id = "org.godotengine.ProjectManager"; } break; - case CONTEXT_ENGINE: + case DisplayServerEnums::CONTEXT_ENGINE: default: { String config_name = GLOBAL_GET("application/config/name"); if (config_name.length() != 0) { @@ -110,7 +110,7 @@ String DisplayServerWayland::_get_app_id_from_context(Context p_context) { return app_id; } -void DisplayServerWayland::_send_window_event(WindowEvent p_event, WindowID p_window_id) { +void DisplayServerWayland::_send_window_event(DisplayServerEnums::WindowEvent p_event, DisplayServerEnums::WindowID p_window_id) { ERR_FAIL_COND(!windows.has(p_window_id)); WindowData &wd = windows[p_window_id]; @@ -129,7 +129,7 @@ void DisplayServerWayland::_dispatch_input_event(const Ref &p_event) Ref event_from_window = p_event; if (event_from_window.is_valid()) { - WindowID window_id = event_from_window->get_window_id(); + DisplayServerEnums::WindowID window_id = event_from_window->get_window_id(); Ref key_event = p_event; if (!popup_menu_list.is_empty() && key_event.is_valid()) { @@ -147,7 +147,7 @@ void DisplayServerWayland::_dispatch_input_event(const Ref &p_event) } else { // Send to all windows. Copy all pending callbacks, since callback can erase window. Vector cbs; - for (KeyValue &E : windows) { + for (KeyValue &E : windows) { Callable callable = E.value.input_event_callback; if (callable.is_valid()) { cbs.push_back(callable); @@ -160,7 +160,7 @@ void DisplayServerWayland::_dispatch_input_event(const Ref &p_event) } } -void DisplayServerWayland::_update_window_rect(const Rect2i &p_rect, WindowID p_window_id) { +void DisplayServerWayland::_update_window_rect(const Rect2i &p_rect, DisplayServerEnums::WindowID p_window_id) { ERR_FAIL_COND(!windows.has(p_window_id)); WindowData &wd = windows[p_window_id]; @@ -190,52 +190,52 @@ void DisplayServerWayland::_update_window_rect(const Rect2i &p_rect, WindowID p_ // Interface methods. -bool DisplayServerWayland::has_feature(Feature p_feature) const { +bool DisplayServerWayland::has_feature(DisplayServerEnums::Feature p_feature) const { switch (p_feature) { #ifndef DISABLE_DEPRECATED - case FEATURE_GLOBAL_MENU: { + case DisplayServerEnums::FEATURE_GLOBAL_MENU: { return (native_menu && native_menu->has_feature(NativeMenu::FEATURE_GLOBAL_MENU)); } break; #endif - case FEATURE_MOUSE: - case FEATURE_MOUSE_WARP: - case FEATURE_CLIPBOARD: - case FEATURE_CURSOR_SHAPE: - case FEATURE_CUSTOM_CURSOR_SHAPE: - case FEATURE_WINDOW_TRANSPARENCY: - case FEATURE_ICON: - case FEATURE_HIDPI: - case FEATURE_SWAP_BUFFERS: - case FEATURE_KEEP_SCREEN_ON: - case FEATURE_IME: - case FEATURE_WINDOW_DRAG: - case FEATURE_CLIPBOARD_PRIMARY: - case FEATURE_SUBWINDOWS: - case FEATURE_WINDOW_EMBEDDING: - case FEATURE_SELF_FITTING_WINDOWS: { + case DisplayServerEnums::FEATURE_MOUSE: + case DisplayServerEnums::FEATURE_MOUSE_WARP: + case DisplayServerEnums::FEATURE_CLIPBOARD: + case DisplayServerEnums::FEATURE_CURSOR_SHAPE: + case DisplayServerEnums::FEATURE_CUSTOM_CURSOR_SHAPE: + case DisplayServerEnums::FEATURE_WINDOW_TRANSPARENCY: + case DisplayServerEnums::FEATURE_ICON: + case DisplayServerEnums::FEATURE_HIDPI: + case DisplayServerEnums::FEATURE_SWAP_BUFFERS: + case DisplayServerEnums::FEATURE_KEEP_SCREEN_ON: + case DisplayServerEnums::FEATURE_IME: + case DisplayServerEnums::FEATURE_WINDOW_DRAG: + case DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY: + case DisplayServerEnums::FEATURE_SUBWINDOWS: + case DisplayServerEnums::FEATURE_WINDOW_EMBEDDING: + case DisplayServerEnums::FEATURE_SELF_FITTING_WINDOWS: { return true; } break; - //case FEATURE_NATIVE_DIALOG: - //case FEATURE_NATIVE_DIALOG_INPUT: + //case DisplayServerEnums::FEATURE_NATIVE_DIALOG: + //case DisplayServerEnums::FEATURE_NATIVE_DIALOG_INPUT: #ifdef DBUS_ENABLED - case FEATURE_NATIVE_DIALOG_FILE: - case FEATURE_NATIVE_DIALOG_FILE_EXTRA: - case FEATURE_NATIVE_DIALOG_FILE_MIME: { + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_EXTRA: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_MIME: { return (portal_desktop && portal_desktop->is_supported() && portal_desktop->is_file_chooser_supported()); } break; - case FEATURE_NATIVE_COLOR_PICKER: { + case DisplayServerEnums::FEATURE_NATIVE_COLOR_PICKER: { return (portal_desktop && portal_desktop->is_supported() && portal_desktop->is_screenshot_supported()); } break; #endif #ifdef SPEECHD_ENABLED - case FEATURE_TEXT_TO_SPEECH: { + case DisplayServerEnums::FEATURE_TEXT_TO_SPEECH: { return true; } break; #endif - case FEATURE_ACCESSIBILITY_SCREEN_READER: { + case DisplayServerEnums::FEATURE_ACCESSIBILITY_SCREEN_READER: { return AccessibilityServer::get_singleton()->is_supported(); } break; @@ -348,13 +348,13 @@ void DisplayServerWayland::set_system_theme_change_callback(const Callable &p_ca portal_desktop->set_system_theme_change_callback(p_callable); } -Error DisplayServerWayland::file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, WindowID p_window_id) { +Error DisplayServerWayland::file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) { ERR_FAIL_COND_V(!portal_desktop, ERR_UNAVAILABLE); MutexLock mutex_lock(wayland_thread.mutex); - WindowID window_id = p_window_id; - if (!windows.has(window_id) || window_get_flag(WINDOW_FLAG_POPUP_WM_HINT, window_id)) { - window_id = MAIN_WINDOW_ID; + DisplayServerEnums::WindowID window_id = p_window_id; + if (!windows.has(window_id) || window_get_flag(DisplayServerEnums::WINDOW_FLAG_POPUP_WM_HINT, window_id)) { + window_id = DisplayServerEnums::MAIN_WINDOW_ID; } WaylandThread::WindowState *ws = wayland_thread.window_get_state(window_id); @@ -363,13 +363,13 @@ Error DisplayServerWayland::file_dialog_show(const String &p_title, const String return portal_desktop->file_dialog_show(window_id, (ws ? ws->exported_handle : String()), p_title, p_current_directory, String(), p_filename, p_mode, p_filters, TypedArray(), p_callback, false); } -Error DisplayServerWayland::file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, WindowID p_window_id) { +Error DisplayServerWayland::file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) { ERR_FAIL_COND_V(!portal_desktop, ERR_UNAVAILABLE); MutexLock mutex_lock(wayland_thread.mutex); - WindowID window_id = p_window_id; - if (!windows.has(window_id) || window_get_flag(WINDOW_FLAG_POPUP_WM_HINT, window_id)) { - window_id = MAIN_WINDOW_ID; + DisplayServerEnums::WindowID window_id = p_window_id; + if (!windows.has(window_id) || window_get_flag(DisplayServerEnums::WINDOW_FLAG_POPUP_WM_HINT, window_id)) { + window_id = DisplayServerEnums::MAIN_WINDOW_ID; } WaylandThread::WindowState *ws = wayland_thread.window_get_state(window_id); @@ -385,7 +385,7 @@ void DisplayServerWayland::beep() const { } void DisplayServerWayland::_mouse_update_mode() { - MouseMode wanted_mouse_mode = mouse_mode_override_enabled + DisplayServerEnums::MouseMode wanted_mouse_mode = mouse_mode_override_enabled ? mouse_mode_override : mouse_mode_base; @@ -395,19 +395,19 @@ void DisplayServerWayland::_mouse_update_mode() { MutexLock mutex_lock(wayland_thread.mutex); - bool show_cursor = (wanted_mouse_mode == MOUSE_MODE_VISIBLE || wanted_mouse_mode == MOUSE_MODE_CONFINED); + bool show_cursor = (wanted_mouse_mode == DisplayServerEnums::MOUSE_MODE_VISIBLE || wanted_mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED); wayland_thread.cursor_set_visible(show_cursor); WaylandThread::PointerConstraint constraint = WaylandThread::PointerConstraint::NONE; switch (wanted_mouse_mode) { - case DisplayServer::MOUSE_MODE_CAPTURED: { + case DisplayServerEnums::MOUSE_MODE_CAPTURED: { constraint = WaylandThread::PointerConstraint::LOCKED; } break; - case DisplayServer::MOUSE_MODE_CONFINED: - case DisplayServer::MOUSE_MODE_CONFINED_HIDDEN: { + case DisplayServerEnums::MOUSE_MODE_CONFINED: + case DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN: { constraint = WaylandThread::PointerConstraint::CONFINED; } break; @@ -417,7 +417,7 @@ void DisplayServerWayland::_mouse_update_mode() { wayland_thread.pointer_set_constraint(constraint); - if (wanted_mouse_mode == DisplayServer::MOUSE_MODE_CAPTURED) { + if (wanted_mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { WindowData *pointed_win = windows.getptr(wayland_thread.pointer_get_pointed_window_id()); ERR_FAIL_NULL(pointed_win); wayland_thread.pointer_set_hint(pointed_win->rect.size / 2); @@ -426,8 +426,8 @@ void DisplayServerWayland::_mouse_update_mode() { mouse_mode = wanted_mouse_mode; } -void DisplayServerWayland::mouse_set_mode(MouseMode p_mode) { - ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); +void DisplayServerWayland::mouse_set_mode(DisplayServerEnums::MouseMode p_mode) { + ERR_FAIL_INDEX(p_mode, DisplayServerEnums::MouseMode::MOUSE_MODE_MAX); if (p_mode == mouse_mode_base) { return; } @@ -435,12 +435,12 @@ void DisplayServerWayland::mouse_set_mode(MouseMode p_mode) { _mouse_update_mode(); } -DisplayServerWayland::MouseMode DisplayServerWayland::mouse_get_mode() const { +DisplayServerEnums::MouseMode DisplayServerWayland::mouse_get_mode() const { return mouse_mode; } -void DisplayServerWayland::mouse_set_mode_override(MouseMode p_mode) { - ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); +void DisplayServerWayland::mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) { + ERR_FAIL_INDEX(p_mode, DisplayServerEnums::MouseMode::MOUSE_MODE_MAX); if (p_mode == mouse_mode_override) { return; } @@ -448,7 +448,7 @@ void DisplayServerWayland::mouse_set_mode_override(MouseMode p_mode) { _mouse_update_mode(); } -DisplayServerWayland::MouseMode DisplayServerWayland::mouse_get_mode_override() const { +DisplayServerEnums::MouseMode DisplayServerWayland::mouse_get_mode_override() const { return mouse_mode_override; } @@ -472,9 +472,9 @@ void DisplayServerWayland::warp_mouse(const Point2i &p_to) { Point2i DisplayServerWayland::mouse_get_position() const { MutexLock mutex_lock(wayland_thread.mutex); - WindowID pointed_id = wayland_thread.pointer_get_pointed_window_id(); + DisplayServerEnums::WindowID pointed_id = wayland_thread.pointer_get_pointed_window_id(); - if (pointed_id != INVALID_WINDOW_ID && windows.has(pointed_id)) { + if (pointed_id != DisplayServerEnums::INVALID_WINDOW_ID && windows.has(pointed_id)) { return Input::get_singleton()->get_mouse_position() + windows[pointed_id].rect.position; } @@ -650,13 +650,13 @@ int DisplayServerWayland::screen_get_dpi(int p_screen) const { float DisplayServerWayland::screen_get_scale(int p_screen) const { MutexLock mutex_lock(wayland_thread.mutex); - if (p_screen == SCREEN_OF_MAIN_WINDOW) { + if (p_screen == DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) { // Wayland does not expose fractional scale factors at the screen-level, but // some code relies on it. Since this special screen is the default and a lot // of code relies on it, we'll return the window's scale, which is what we // really care about. After all, we have very little use of the actual screen // enumeration APIs and we're (for now) in single-window mode anyways. - struct wl_surface *wl_surface = wayland_thread.window_get_wl_surface(MAIN_WINDOW_ID); + struct wl_surface *wl_surface = wayland_thread.window_get_wl_surface(DisplayServerEnums::MAIN_WINDOW_ID); WaylandThread::WindowState *ws = wayland_thread.wl_surface_get_window_state(wl_surface); return wayland_thread.window_state_get_scale_factor(ws); @@ -688,14 +688,14 @@ void DisplayServerWayland::screen_set_keep_on(bool p_enable) { return; } - wayland_thread.window_set_idle_inhibition(MAIN_WINDOW_ID, p_enable); + wayland_thread.window_set_idle_inhibition(DisplayServerEnums::MAIN_WINDOW_ID, p_enable); #ifdef DBUS_ENABLED if (portal_desktop && portal_desktop->is_inhibit_supported()) { if (p_enable) { // Attach the inhibit request to the main window, not the last focused window, // on the basis that inhibiting the screensaver is global state for the application. - WindowID window_id = MAIN_WINDOW_ID; + DisplayServerEnums::WindowID window_id = DisplayServerEnums::MAIN_WINDOW_ID; WaylandThread::WindowState *ws = wayland_thread.wl_surface_get_window_state(wayland_thread.window_get_wl_surface(window_id)); screensaver_inhibited = portal_desktop->inhibit(ws ? ws->exported_handle : String()); } else { @@ -717,24 +717,24 @@ void DisplayServerWayland::screen_set_keep_on(bool p_enable) { bool DisplayServerWayland::screen_is_kept_on() const { // FIXME: Multiwindow support. #ifdef DBUS_ENABLED - return wayland_thread.window_get_idle_inhibition(MAIN_WINDOW_ID) || screensaver_inhibited; + return wayland_thread.window_get_idle_inhibition(DisplayServerEnums::MAIN_WINDOW_ID) || screensaver_inhibited; #else - return wayland_thread.window_get_idle_inhibition(MAIN_WINDOW_ID); + return wayland_thread.window_get_idle_inhibition(DisplayServerEnums::MAIN_WINDOW_ID); #endif } -Vector DisplayServerWayland::get_window_list() const { +Vector DisplayServerWayland::get_window_list() const { MutexLock mutex_lock(wayland_thread.mutex); Vector ret; - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { ret.push_back(E.key); } return ret; } -DisplayServer::WindowID DisplayServerWayland::create_sub_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, WindowID p_transient_parent) { - WindowID id = ++window_id_counter; +DisplayServerEnums::WindowID DisplayServerWayland::create_sub_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, DisplayServerEnums::WindowID p_transient_parent) { + DisplayServerEnums::WindowID id = ++window_id_counter; WindowData &wd = windows[id]; wd.id = id; @@ -757,7 +757,7 @@ DisplayServer::WindowID DisplayServerWayland::create_sub_window(WindowMode p_mod return id; } -void DisplayServerWayland::show_window(WindowID p_window_id) { +void DisplayServerWayland::show_window(DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window_id)); @@ -769,19 +769,19 @@ void DisplayServerWayland::show_window(WindowID p_window_id) { // Showing this window will reset its mode with whatever the compositor // reports. We'll save the mode beforehand so that we can reapply it later. // TODO: Fix/Port/Move/Whatever to `WaylandThread` APIs. - WindowMode setup_mode = wd.mode; + DisplayServerEnums::WindowMode setup_mode = wd.mode; // Let's determine the closest toplevel. For toplevels it will be themselves, // for popups the first toplevel ancestor it finds. - WindowID root_id = wd.id; - while (root_id != INVALID_WINDOW_ID && window_get_flag(WINDOW_FLAG_POPUP_WM_HINT, root_id)) { + DisplayServerEnums::WindowID root_id = wd.id; + while (root_id != DisplayServerEnums::INVALID_WINDOW_ID && window_get_flag(DisplayServerEnums::WINDOW_FLAG_POPUP_WM_HINT, root_id)) { root_id = windows[root_id].parent_id; } - ERR_FAIL_COND(root_id == INVALID_WINDOW_ID); + ERR_FAIL_COND(root_id == DisplayServerEnums::INVALID_WINDOW_ID); wd.root_id = root_id; - if (!window_get_flag(WINDOW_FLAG_POPUP_WM_HINT, p_window_id)) { + if (!window_get_flag(DisplayServerEnums::WINDOW_FLAG_POPUP_WM_HINT, p_window_id)) { // NOTE: DO **NOT** KEEP THE POSITION SET FOR TOPLEVELS. Wayland does not // track them and we're gonna get our events transformed in unexpected ways. wd.rect.position = Point2i(); @@ -791,7 +791,7 @@ void DisplayServerWayland::show_window(WindowID p_window_id) { wayland_thread.window_set_min_size(p_window_id, wd.min_size); wayland_thread.window_set_max_size(p_window_id, wd.max_size); wayland_thread.window_set_app_id(p_window_id, _get_app_id_from_context(context)); - wayland_thread.window_set_borderless(p_window_id, window_get_flag(WINDOW_FLAG_BORDERLESS, p_window_id)); + wayland_thread.window_set_borderless(p_window_id, window_get_flag(DisplayServerEnums::WINDOW_FLAG_BORDERLESS, p_window_id)); // Since it can't have a position. Let's tell the window node the news by // the actual rect to it. @@ -803,7 +803,7 @@ void DisplayServerWayland::show_window(WindowID p_window_id) { windows[root_id].popup_stack.push_back(p_window_id); - if (window_get_flag(WINDOW_FLAG_POPUP, p_window_id)) { + if (window_get_flag(DisplayServerEnums::WINDOW_FLAG_POPUP, p_window_id)) { // Reroutes all input to it. popup_menu_list.push_back(p_window_id); } @@ -869,7 +869,7 @@ void DisplayServerWayland::show_window(WindowID p_window_id) { } } -void DisplayServerWayland::delete_sub_window(WindowID p_window_id) { +void DisplayServerWayland::delete_sub_window(DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window_id)); @@ -878,16 +878,16 @@ void DisplayServerWayland::delete_sub_window(WindowID p_window_id) { ERR_FAIL_COND(!windows.has(wd.root_id)); WindowData &root_wd = windows[wd.root_id]; - // NOTE: By the time the Wayland thread will send a `WINDOW_EVENT_MOUSE_EXIT` + // NOTE: By the time the Wayland thread will send a `DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT` // the window will be gone and the message will be discarded, confusing the // engine. We thus have to send it ourselves. if (wayland_thread.pointer_get_pointed_window_id() == p_window_id) { - _send_window_event(WINDOW_EVENT_MOUSE_EXIT, p_window_id); + _send_window_event(DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT, p_window_id); } // The XDG shell specification requires us to clear all popups in reverse order. while (!root_wd.popup_stack.is_empty() && root_wd.popup_stack.back()->get() != p_window_id) { - _send_window_event(WINDOW_EVENT_FORCE_CLOSE, root_wd.popup_stack.back()->get()); + _send_window_event(DisplayServerEnums::WINDOW_EVENT_FORCE_CLOSE, root_wd.popup_stack.back()->get()); } if (root_wd.popup_stack.back() && root_wd.popup_stack.back()->get() == p_window_id) { @@ -925,17 +925,17 @@ void DisplayServerWayland::delete_sub_window(WindowID p_window_id) { DEBUG_LOG_WAYLAND(vformat("Destroyed window %d", p_window_id)); } -DisplayServer::WindowID DisplayServerWayland::window_get_active_popup() const { +DisplayServerEnums::WindowID DisplayServerWayland::window_get_active_popup() const { MutexLock mutex_lock(wayland_thread.mutex); if (!popup_menu_list.is_empty()) { return popup_menu_list.back()->get(); } - return INVALID_WINDOW_ID; + return DisplayServerEnums::INVALID_WINDOW_ID; } -void DisplayServerWayland::window_set_popup_safe_rect(WindowID p_window, const Rect2i &p_rect) { +void DisplayServerWayland::window_set_popup_safe_rect(DisplayServerEnums::WindowID p_window, const Rect2i &p_rect) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window)); @@ -943,7 +943,7 @@ void DisplayServerWayland::window_set_popup_safe_rect(WindowID p_window, const R windows[p_window].safe_rect = p_rect; } -Rect2i DisplayServerWayland::window_get_popup_safe_rect(WindowID p_window) const { +Rect2i DisplayServerWayland::window_get_popup_safe_rect(DisplayServerEnums::WindowID p_window) const { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND_V(!windows.has(p_window), Rect2i()); @@ -951,36 +951,36 @@ Rect2i DisplayServerWayland::window_get_popup_safe_rect(WindowID p_window) const return windows[p_window].safe_rect; } -int64_t DisplayServerWayland::window_get_native_handle(HandleType p_handle_type, WindowID p_window) const { +int64_t DisplayServerWayland::window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window) const { MutexLock mutex_lock(wayland_thread.mutex); switch (p_handle_type) { - case DISPLAY_HANDLE: { + case DisplayServerEnums::DISPLAY_HANDLE: { return (int64_t)wayland_thread.get_wl_display(); } break; - case WINDOW_HANDLE: { + case DisplayServerEnums::WINDOW_HANDLE: { return (int64_t)wayland_thread.window_get_wl_surface(p_window); } break; - case WINDOW_VIEW: { + case DisplayServerEnums::WINDOW_VIEW: { return 0; // Not supported. } break; #ifdef GLES3_ENABLED - case OPENGL_CONTEXT: { + case DisplayServerEnums::OPENGL_CONTEXT: { if (egl_manager) { return (int64_t)egl_manager->get_context(p_window); } return 0; } break; - case EGL_DISPLAY: { + case DisplayServerEnums::EGL_DISPLAY: { if (egl_manager) { return (int64_t)egl_manager->get_display(p_window); } return 0; } - case EGL_CONFIG: { + case DisplayServerEnums::EGL_CONFIG: { if (egl_manager) { return (int64_t)egl_manager->get_config(p_window); } @@ -994,12 +994,12 @@ int64_t DisplayServerWayland::window_get_native_handle(HandleType p_handle_type, } } -DisplayServer::WindowID DisplayServerWayland::get_window_at_screen_position(const Point2i &p_position) const { +DisplayServerEnums::WindowID DisplayServerWayland::get_window_at_screen_position(const Point2i &p_position) const { // Standard Wayland APIs don't support this. - return MAIN_WINDOW_ID; + return DisplayServerEnums::MAIN_WINDOW_ID; } -void DisplayServerWayland::window_attach_instance_id(ObjectID p_instance, WindowID p_window_id) { +void DisplayServerWayland::window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window_id)); @@ -1007,7 +1007,7 @@ void DisplayServerWayland::window_attach_instance_id(ObjectID p_instance, Window windows[p_window_id].instance_id = p_instance; } -ObjectID DisplayServerWayland::window_get_attached_instance_id(WindowID p_window_id) const { +ObjectID DisplayServerWayland::window_get_attached_instance_id(DisplayServerEnums::WindowID p_window_id) const { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND_V(!windows.has(p_window_id), ObjectID()); @@ -1015,7 +1015,7 @@ ObjectID DisplayServerWayland::window_get_attached_instance_id(WindowID p_window return windows[p_window_id].instance_id; } -void DisplayServerWayland::window_set_title(const String &p_title, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window_id)); @@ -1029,12 +1029,12 @@ void DisplayServerWayland::window_set_title(const String &p_title, DisplayServer } } -void DisplayServerWayland::window_set_mouse_passthrough(const Vector &p_region, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_mouse_passthrough(const Vector &p_region, DisplayServerEnums::WindowID p_window_id) { // TODO DEBUG_LOG_WAYLAND(vformat("wayland stub window_set_mouse_passthrough region %s", p_region)); } -void DisplayServerWayland::window_set_rect_changed_callback(const Callable &p_callable, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window_id)); @@ -1042,7 +1042,7 @@ void DisplayServerWayland::window_set_rect_changed_callback(const Callable &p_ca windows[p_window_id].rect_changed_callback = p_callable; } -void DisplayServerWayland::window_set_window_event_callback(const Callable &p_callable, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window_id)); @@ -1050,7 +1050,7 @@ void DisplayServerWayland::window_set_window_event_callback(const Callable &p_ca windows[p_window_id].window_event_callback = p_callable; } -void DisplayServerWayland::window_set_input_event_callback(const Callable &p_callable, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window_id)); @@ -1058,7 +1058,7 @@ void DisplayServerWayland::window_set_input_event_callback(const Callable &p_cal windows[p_window_id].input_event_callback = p_callable; } -void DisplayServerWayland::window_set_input_text_callback(const Callable &p_callable, WindowID p_window_id) { +void DisplayServerWayland::window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window_id)); @@ -1066,7 +1066,7 @@ void DisplayServerWayland::window_set_input_text_callback(const Callable &p_call windows[p_window_id].input_text_callback = p_callable; } -void DisplayServerWayland::window_set_drop_files_callback(const Callable &p_callable, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window_id)); @@ -1074,33 +1074,33 @@ void DisplayServerWayland::window_set_drop_files_callback(const Callable &p_call windows[p_window_id].drop_files_callback = p_callable; } -int DisplayServerWayland::window_get_current_screen(DisplayServer::WindowID p_window_id) const { - ERR_FAIL_COND_V(!windows.has(p_window_id), INVALID_SCREEN); +int DisplayServerWayland::window_get_current_screen(DisplayServerEnums::WindowID p_window_id) const { + ERR_FAIL_COND_V(!windows.has(p_window_id), DisplayServerEnums::INVALID_SCREEN); // Standard Wayland APIs don't support getting the screen of a window. return 0; } -void DisplayServerWayland::window_set_current_screen(int p_screen, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window_id) { // Standard Wayland APIs don't support setting the screen of a window. } -Point2i DisplayServerWayland::window_get_position(DisplayServer::WindowID p_window_id) const { +Point2i DisplayServerWayland::window_get_position(DisplayServerEnums::WindowID p_window_id) const { MutexLock mutex_lock(wayland_thread.mutex); return windows[p_window_id].rect.position; } -Point2i DisplayServerWayland::window_get_position_with_decorations(DisplayServer::WindowID p_window_id) const { +Point2i DisplayServerWayland::window_get_position_with_decorations(DisplayServerEnums::WindowID p_window_id) const { MutexLock mutex_lock(wayland_thread.mutex); return windows[p_window_id].rect.position; } -void DisplayServerWayland::window_set_position(const Point2i &p_position, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window_id) { // Unsupported with toplevels. } -void DisplayServerWayland::window_set_max_size(const Size2i p_size, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); DEBUG_LOG_WAYLAND(vformat("window max size set to %s", p_size)); @@ -1125,14 +1125,14 @@ void DisplayServerWayland::window_set_max_size(const Size2i p_size, DisplayServe } } -Size2i DisplayServerWayland::window_get_max_size(DisplayServer::WindowID p_window_id) const { +Size2i DisplayServerWayland::window_get_max_size(DisplayServerEnums::WindowID p_window_id) const { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND_V(!windows.has(p_window_id), Size2i()); return windows[p_window_id].max_size; } -void DisplayServerWayland::gl_window_make_current(DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::gl_window_make_current(DisplayServerEnums::WindowID p_window_id) { #ifdef GLES3_ENABLED if (egl_manager) { egl_manager->window_make_current(p_window_id); @@ -1140,7 +1140,7 @@ void DisplayServerWayland::gl_window_make_current(DisplayServer::WindowID p_wind #endif } -void DisplayServerWayland::window_set_transient(WindowID p_window_id, WindowID p_parent) { +void DisplayServerWayland::window_set_transient(DisplayServerEnums::WindowID p_window_id, DisplayServerEnums::WindowID p_parent) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window_id)); @@ -1148,9 +1148,9 @@ void DisplayServerWayland::window_set_transient(WindowID p_window_id, WindowID p ERR_FAIL_COND(wd.parent_id == p_parent); - if (p_parent != INVALID_WINDOW_ID) { + if (p_parent != DisplayServerEnums::INVALID_WINDOW_ID) { ERR_FAIL_COND(!windows.has(p_parent)); - ERR_FAIL_COND_MSG(wd.parent_id != INVALID_WINDOW_ID, "Window already has a transient parent"); + ERR_FAIL_COND_MSG(wd.parent_id != DisplayServerEnums::INVALID_WINDOW_ID, "Window already has a transient parent"); wd.parent_id = p_parent; // NOTE: Looks like live unparenting is not really practical unfortunately. @@ -1161,7 +1161,7 @@ void DisplayServerWayland::window_set_transient(WindowID p_window_id, WindowID p } } -void DisplayServerWayland::window_set_min_size(const Size2i p_size, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); DEBUG_LOG_WAYLAND(vformat("window minsize set to %s", p_size)); @@ -1186,14 +1186,14 @@ void DisplayServerWayland::window_set_min_size(const Size2i p_size, DisplayServe } } -Size2i DisplayServerWayland::window_get_min_size(DisplayServer::WindowID p_window_id) const { +Size2i DisplayServerWayland::window_get_min_size(DisplayServerEnums::WindowID p_window_id) const { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND_V(!windows.has(p_window_id), Size2i()); return windows[p_window_id].min_size; } -void DisplayServerWayland::window_set_size(const Size2i p_size, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window_id)); @@ -1211,14 +1211,14 @@ void DisplayServerWayland::window_set_size(const Size2i p_size, DisplayServer::W _update_window_rect(Rect2i(wd.rect.position, new_size), p_window_id); } -Size2i DisplayServerWayland::window_get_size(DisplayServer::WindowID p_window_id) const { +Size2i DisplayServerWayland::window_get_size(DisplayServerEnums::WindowID p_window_id) const { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND_V(!windows.has(p_window_id), Size2i()); return windows[p_window_id].rect.size; } -Size2i DisplayServerWayland::window_get_size_with_decorations(DisplayServer::WindowID p_window_id) const { +Size2i DisplayServerWayland::window_get_size_with_decorations(DisplayServerEnums::WindowID p_window_id) const { MutexLock mutex_lock(wayland_thread.mutex); // I don't think there's a way of actually knowing the size of the window @@ -1228,7 +1228,7 @@ Size2i DisplayServerWayland::window_get_size_with_decorations(DisplayServer::Win return windows[p_window_id].rect.size; } -float DisplayServerWayland::window_get_scale(WindowID p_window_id) const { +float DisplayServerWayland::window_get_scale(DisplayServerEnums::WindowID p_window_id) const { MutexLock mutex_lock(wayland_thread.mutex); const WaylandThread::WindowState *ws = wayland_thread.window_get_state(p_window_id); @@ -1237,7 +1237,7 @@ float DisplayServerWayland::window_get_scale(WindowID p_window_id) const { return wayland_thread.window_state_get_scale_factor(ws); } -void DisplayServerWayland::window_set_mode(WindowMode p_mode, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window_id)); @@ -1250,26 +1250,26 @@ void DisplayServerWayland::window_set_mode(WindowMode p_mode, DisplayServer::Win wayland_thread.window_try_set_mode(p_window_id, p_mode); } -DisplayServer::WindowMode DisplayServerWayland::window_get_mode(DisplayServer::WindowID p_window_id) const { +DisplayServerEnums::WindowMode DisplayServerWayland::window_get_mode(DisplayServerEnums::WindowID p_window_id) const { MutexLock mutex_lock(wayland_thread.mutex); - ERR_FAIL_COND_V(!windows.has(p_window_id), WINDOW_MODE_WINDOWED); + ERR_FAIL_COND_V(!windows.has(p_window_id), DisplayServerEnums::WINDOW_MODE_WINDOWED); const WindowData &wd = windows[p_window_id]; if (!wd.visible) { - return WINDOW_MODE_WINDOWED; + return DisplayServerEnums::WINDOW_MODE_WINDOWED; } return wayland_thread.window_get_mode(p_window_id); } -bool DisplayServerWayland::window_is_maximize_allowed(DisplayServer::WindowID p_window_id) const { +bool DisplayServerWayland::window_is_maximize_allowed(DisplayServerEnums::WindowID p_window_id) const { MutexLock mutex_lock(wayland_thread.mutex); - return wayland_thread.window_can_set_mode(p_window_id, WINDOW_MODE_MAXIMIZED); + return wayland_thread.window_can_set_mode(p_window_id, DisplayServerEnums::WINDOW_MODE_MAXIMIZED); } -void DisplayServerWayland::window_set_flag(WindowFlags p_flag, bool p_enabled, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND(!windows.has(p_window_id)); @@ -1278,18 +1278,18 @@ void DisplayServerWayland::window_set_flag(WindowFlags p_flag, bool p_enabled, D DEBUG_LOG_WAYLAND(vformat("Window set flag %d", p_flag)); switch (p_flag) { - case WINDOW_FLAG_BORDERLESS: { + case DisplayServerEnums::WINDOW_FLAG_BORDERLESS: { wayland_thread.window_set_borderless(p_window_id, p_enabled); } break; - case WINDOW_FLAG_POPUP: { - ERR_FAIL_COND_MSG(p_window_id == MAIN_WINDOW_ID, "Main window can't be popup."); - ERR_FAIL_COND_MSG(wd.visible && (wd.flags & WINDOW_FLAG_POPUP_BIT) != p_enabled, "Popup flag can't changed while window is opened."); + case DisplayServerEnums::WINDOW_FLAG_POPUP: { + ERR_FAIL_COND_MSG(p_window_id == DisplayServerEnums::MAIN_WINDOW_ID, "Main window can't be popup."); + ERR_FAIL_COND_MSG(wd.visible && (wd.flags & DisplayServerEnums::WINDOW_FLAG_POPUP_BIT) != p_enabled, "Popup flag can't changed while window is opened."); } break; - case WINDOW_FLAG_POPUP_WM_HINT: { - ERR_FAIL_COND_MSG(p_window_id == MAIN_WINDOW_ID, "Main window can't have popup hint."); - ERR_FAIL_COND_MSG(wd.visible && (wd.flags & WINDOW_FLAG_POPUP_WM_HINT_BIT) != p_enabled, "Popup hint can't changed while window is opened."); + case DisplayServerEnums::WINDOW_FLAG_POPUP_WM_HINT: { + ERR_FAIL_COND_MSG(p_window_id == DisplayServerEnums::MAIN_WINDOW_ID, "Main window can't have popup hint."); + ERR_FAIL_COND_MSG(wd.visible && (wd.flags & DisplayServerEnums::WINDOW_FLAG_POPUP_WM_HINT_BIT) != p_enabled, "Popup hint can't changed while window is opened."); } break; default: { @@ -1303,14 +1303,14 @@ void DisplayServerWayland::window_set_flag(WindowFlags p_flag, bool p_enabled, D } } -bool DisplayServerWayland::window_get_flag(WindowFlags p_flag, DisplayServer::WindowID p_window_id) const { +bool DisplayServerWayland::window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window_id) const { MutexLock mutex_lock(wayland_thread.mutex); ERR_FAIL_COND_V(!windows.has(p_window_id), false); return windows[p_window_id].flags & (1 << p_flag); } -void DisplayServerWayland::window_request_attention(DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_request_attention(DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); DEBUG_LOG_WAYLAND("Requested attention."); @@ -1318,17 +1318,17 @@ void DisplayServerWayland::window_request_attention(DisplayServer::WindowID p_wi wayland_thread.window_request_attention(p_window_id); } -void DisplayServerWayland::window_move_to_foreground(DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_move_to_foreground(DisplayServerEnums::WindowID p_window_id) { // Standard Wayland APIs don't support this. } -bool DisplayServerWayland::window_is_focused(WindowID p_window_id) const { +bool DisplayServerWayland::window_is_focused(DisplayServerEnums::WindowID p_window_id) const { MutexLock mutex_lock(wayland_thread.mutex); return wayland_thread.pointer_get_pointed_window_id() == p_window_id; } -bool DisplayServerWayland::window_can_draw(DisplayServer::WindowID p_window_id) const { +bool DisplayServerWayland::window_can_draw(DisplayServerEnums::WindowID p_window_id) const { MutexLock mutex_lock(wayland_thread.mutex); uint64_t last_frame_time = wayland_thread.window_get_last_frame_time(p_window_id); @@ -1349,13 +1349,13 @@ bool DisplayServerWayland::can_any_window_draw() const { return suspend_state == SuspendState::NONE; } -void DisplayServerWayland::window_set_ime_active(const bool p_active, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); wayland_thread.window_set_ime_active(p_active, p_window_id); } -void DisplayServerWayland::window_set_ime_position(const Point2i &p_pos, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); wayland_thread.window_set_ime_position(p_pos, p_window_id); @@ -1392,7 +1392,7 @@ String DisplayServerWayland::ime_get_text() const { // 1.30 added a protocol for allowing async flips which is supposed to be // handled by drivers such as Vulkan. We can then just ask to disable v-sync and // hope for the best. See: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/commit/6394f0b4f3be151076f10a845a2fb131eeb56706 -void DisplayServerWayland::window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, DisplayServer::WindowID p_window_id) { +void DisplayServerWayland::window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window_id) { MutexLock mutex_lock(wayland_thread.mutex); WindowData &wd = windows[p_window_id]; @@ -1401,18 +1401,18 @@ void DisplayServerWayland::window_set_vsync_mode(DisplayServer::VSyncMode p_vsyn if (rendering_context) { rendering_context->window_set_vsync_mode(p_window_id, p_vsync_mode); - wd.emulate_vsync = (!wayland_thread.is_fifo_available() && rendering_context->window_get_vsync_mode(p_window_id) == DisplayServer::VSYNC_ENABLED); + wd.emulate_vsync = (!wayland_thread.is_fifo_available() && rendering_context->window_get_vsync_mode(p_window_id) == DisplayServerEnums::VSYNC_ENABLED); if (wd.emulate_vsync) { print_verbose("VSYNC: manually throttling frames using MAILBOX."); - rendering_context->window_set_vsync_mode(p_window_id, DisplayServer::VSYNC_MAILBOX); + rendering_context->window_set_vsync_mode(p_window_id, DisplayServerEnums::VSYNC_MAILBOX); } } #endif // VULKAN_ENABLED #ifdef GLES3_ENABLED if (egl_manager) { - egl_manager->set_use_vsync(p_vsync_mode != DisplayServer::VSYNC_DISABLED); + egl_manager->set_use_vsync(p_vsync_mode != DisplayServerEnums::VSYNC_DISABLED); // NOTE: Mesa's EGL implementation does not seem to make use of fifo_v1 so // we'll have to always emulate V-Sync. @@ -1426,10 +1426,10 @@ void DisplayServerWayland::window_set_vsync_mode(DisplayServer::VSyncMode p_vsyn #endif // GLES3_ENABLED } -DisplayServer::VSyncMode DisplayServerWayland::window_get_vsync_mode(DisplayServer::WindowID p_window_id) const { +DisplayServerEnums::VSyncMode DisplayServerWayland::window_get_vsync_mode(DisplayServerEnums::WindowID p_window_id) const { const WindowData &wd = windows[p_window_id]; if (wd.emulate_vsync) { - return DisplayServer::VSYNC_ENABLED; + return DisplayServerEnums::VSYNC_ENABLED; } #ifdef VULKAN_ENABLED @@ -1440,28 +1440,28 @@ DisplayServer::VSyncMode DisplayServerWayland::window_get_vsync_mode(DisplayServ #ifdef GLES3_ENABLED if (egl_manager) { - return egl_manager->is_using_vsync() ? DisplayServer::VSYNC_ENABLED : DisplayServer::VSYNC_DISABLED; + return egl_manager->is_using_vsync() ? DisplayServerEnums::VSYNC_ENABLED : DisplayServerEnums::VSYNC_DISABLED; } #endif // GLES3_ENABLED - return DisplayServer::VSYNC_ENABLED; + return DisplayServerEnums::VSYNC_ENABLED; } -void DisplayServerWayland::window_start_drag(WindowID p_window) { +void DisplayServerWayland::window_start_drag(DisplayServerEnums::WindowID p_window) { MutexLock mutex_lock(wayland_thread.mutex); wayland_thread.window_start_drag(p_window); } -void DisplayServerWayland::window_start_resize(WindowResizeEdge p_edge, WindowID p_window) { +void DisplayServerWayland::window_start_resize(DisplayServerEnums::WindowResizeEdge p_edge, DisplayServerEnums::WindowID p_window) { MutexLock mutex_lock(wayland_thread.mutex); - ERR_FAIL_INDEX(int(p_edge), WINDOW_EDGE_MAX); + ERR_FAIL_INDEX(int(p_edge), DisplayServerEnums::WINDOW_EDGE_MAX); wayland_thread.window_start_resize(p_edge, p_window); } -void DisplayServerWayland::cursor_set_shape(CursorShape p_shape) { - ERR_FAIL_INDEX(p_shape, CURSOR_MAX); +void DisplayServerWayland::cursor_set_shape(DisplayServerEnums::CursorShape p_shape) { + ERR_FAIL_INDEX(p_shape, DisplayServerEnums::CURSOR_MAX); MutexLock mutex_lock(wayland_thread.mutex); @@ -1471,7 +1471,7 @@ void DisplayServerWayland::cursor_set_shape(CursorShape p_shape) { cursor_shape = p_shape; - if (mouse_mode != MOUSE_MODE_VISIBLE && mouse_mode != MOUSE_MODE_CONFINED) { + if (mouse_mode != DisplayServerEnums::MOUSE_MODE_VISIBLE && mouse_mode != DisplayServerEnums::MOUSE_MODE_CONFINED) { // Hidden. return; } @@ -1479,17 +1479,17 @@ void DisplayServerWayland::cursor_set_shape(CursorShape p_shape) { wayland_thread.cursor_set_shape(p_shape); } -DisplayServerWayland::CursorShape DisplayServerWayland::cursor_get_shape() const { +DisplayServerEnums::CursorShape DisplayServerWayland::cursor_get_shape() const { MutexLock mutex_lock(wayland_thread.mutex); return cursor_shape; } -void DisplayServerWayland::cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) { +void DisplayServerWayland::cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape, const Vector2 &p_hotspot) { MutexLock mutex_lock(wayland_thread.mutex); if (p_cursor.is_valid()) { - HashMap::Iterator cursor_c = custom_cursors.find(p_shape); + HashMap::Iterator cursor_c = custom_cursors.find(p_shape); if (cursor_c) { if (cursor_c->value.resource == p_cursor && cursor_c->value.hotspot == p_hotspot) { @@ -1532,7 +1532,7 @@ bool DisplayServerWayland::get_swap_cancel_ok() { return swap_cancel_ok; } -Error DisplayServerWayland::embed_process(WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) { +Error DisplayServerWayland::embed_process(DisplayServerEnums::WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) { MutexLock mutex_lock(wayland_thread.mutex); struct godot_embedding_compositor *ec = wayland_thread.get_embedding_compositor(); @@ -1688,7 +1688,7 @@ bool DisplayServerWayland::color_picker(const Callable &p_callback) { return false; } MutexLock mutex_lock(wayland_thread.mutex); - WindowID window_id = MAIN_WINDOW_ID; + DisplayServerEnums::WindowID window_id = DisplayServerEnums::MAIN_WINDOW_ID; // TODO: Use window IDs for multiwindow support. WaylandThread::WindowState *ws = wayland_thread.wl_surface_get_window_state(wayland_thread.window_get_wl_surface(window_id)); return portal_desktop->color_picker((ws ? ws->exported_handle : String()), p_callback); @@ -1720,7 +1720,7 @@ void DisplayServerWayland::process_events() { // Generic check. Not actual message handling. Ref win_msg = msg; if (win_msg.is_valid()) { - ERR_CONTINUE_MSG(win_msg->id == INVALID_WINDOW_ID, "Invalid window ID received from Wayland thread."); + ERR_CONTINUE_MSG(win_msg->id == DisplayServerEnums::INVALID_WINDOW_ID, "Invalid window ID received from Wayland thread."); if (!windows.has(win_msg->id)) { // Window got probably deleted. @@ -1738,12 +1738,12 @@ void DisplayServerWayland::process_events() { if (winev_msg.is_valid() && windows.has(winev_msg->id)) { _send_window_event(winev_msg->event, winev_msg->id); - if (winev_msg->event == WINDOW_EVENT_FOCUS_IN) { + if (winev_msg->event == DisplayServerEnums::WINDOW_EVENT_FOCUS_IN) { AccessibilityServer::get_singleton()->set_window_focused(winev_msg->id, true); if (OS::get_singleton()->get_main_loop()) { OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_APPLICATION_FOCUS_IN); } - } else if (winev_msg->event == WINDOW_EVENT_FOCUS_OUT) { + } else if (winev_msg->event == DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT) { AccessibilityServer::get_singleton()->set_window_focused(winev_msg->id, false); if (OS::get_singleton()->get_main_loop()) { OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_APPLICATION_FOCUS_OUT); @@ -1762,8 +1762,8 @@ void DisplayServerWayland::process_events() { BitField mouse_mask = mb->get_button_mask(); if (!popup_menu_list.is_empty() && mb->is_pressed() && mouse_mask != last_mouse_monitor_mask) { // Popup menu handling. - List::Element *E = popup_menu_list.back(); - List::Element *C = nullptr; + List::Element *E = popup_menu_list.back(); + List::Element *C = nullptr; // Looking for the oldest popup to close. while (E) { @@ -1781,7 +1781,7 @@ void DisplayServerWayland::process_events() { if (C) { handled = true; - _send_window_event(WINDOW_EVENT_CLOSE_REQUEST, C->get()); + _send_window_event(DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST, C->get()); } } @@ -1850,7 +1850,7 @@ void DisplayServerWayland::process_events() { switch (suspend_state) { case SuspendState::NONE: { bool emulate_vsync = false; - for (KeyValue &pair : windows) { + for (KeyValue &pair : windows) { if (pair.value.emulate_vsync) { emulate_vsync = true; break; @@ -1950,7 +1950,7 @@ void DisplayServerWayland::set_icon(const Ref &p_icon) { wayland_thread.set_icon(p_icon); } -void DisplayServerWayland::set_context(Context p_context) { +void DisplayServerWayland::set_context(DisplayServerEnums::Context p_context) { MutexLock mutex_lock(wayland_thread.mutex); DEBUG_LOG_WAYLAND(vformat("Setting context %d.", p_context)); @@ -1958,7 +1958,7 @@ void DisplayServerWayland::set_context(Context p_context) { context = p_context; String app_id = _get_app_id_from_context(p_context); - wayland_thread.window_set_app_id(MAIN_WINDOW_ID, app_id); + wayland_thread.window_set_app_id(DisplayServerEnums::MAIN_WINDOW_ID, app_id); } bool DisplayServerWayland::is_window_transparency_available() const { @@ -1986,7 +1986,7 @@ Vector DisplayServerWayland::get_rendering_drivers_func() { return drivers; } -DisplayServer *DisplayServerWayland::create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Point2i *p_position, const Size2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServer *DisplayServerWayland::create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Point2i *p_position, const Size2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { DisplayServer *ds = memnew(DisplayServerWayland(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_resolution, p_context, p_parent_window, r_error)); if (r_error != OK) { ERR_PRINT("Can't create the Wayland display server."); @@ -1997,7 +1997,7 @@ DisplayServer *DisplayServerWayland::create_func(const String &p_rendering_drive return ds; } -DisplayServerWayland::DisplayServerWayland(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i &p_resolution, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServerWayland::DisplayServerWayland(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i &p_resolution, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { #if defined(GLES3_ENABLED) || defined(DBUS_ENABLED) #ifdef SOWRAP_ENABLED #ifdef DEBUG_ENABLED @@ -2201,11 +2201,11 @@ DisplayServerWayland::DisplayServerWayland(const String &p_rendering_driver, Win ERR_FAIL_MSG("Video driver not found."); } - cursor_set_shape(CURSOR_BUSY); + cursor_set_shape(DisplayServerEnums::CURSOR_BUSY); - WindowData &wd = windows[MAIN_WINDOW_ID]; + WindowData &wd = windows[DisplayServerEnums::MAIN_WINDOW_ID]; - wd.id = MAIN_WINDOW_ID; + wd.id = DisplayServerEnums::MAIN_WINDOW_ID; wd.mode = p_mode; wd.flags = p_flags; wd.vsync_mode = p_vsync_mode; @@ -2218,12 +2218,12 @@ DisplayServerWayland::DisplayServerWayland(const String &p_rendering_driver, Win } } - show_window(MAIN_WINDOW_ID); + show_window(DisplayServerEnums::MAIN_WINDOW_ID); #ifdef RD_ENABLED if (rendering_context) { rendering_device = memnew(RenderingDevice); - if (rendering_device->initialize(rendering_context, MAIN_WINDOW_ID) != OK) { + if (rendering_device->initialize(rendering_context, DisplayServerEnums::MAIN_WINDOW_ID) != OK) { memdelete(rendering_device); rendering_device = nullptr; memdelete(rendering_context); @@ -2231,7 +2231,7 @@ DisplayServerWayland::DisplayServerWayland(const String &p_rendering_driver, Win r_error = ERR_UNAVAILABLE; return; } - rendering_device->screen_create(MAIN_WINDOW_ID); + rendering_device->screen_create(DisplayServerEnums::MAIN_WINDOW_ID); RendererCompositorRD::make_current(); } @@ -2279,19 +2279,19 @@ DisplayServerWayland::~DisplayServerWayland() { // Iterating on the window map while we delete stuff from it is a bit // uncomfortable, plus we can't even delete /all/ windows in an arbitrary order // (due to popups). - List toplevels; + List toplevels; - for (const KeyValue &pair : windows) { - WindowID id = pair.key; + for (const KeyValue &pair : windows) { + DisplayServerEnums::WindowID id = pair.key; - if (!window_get_flag(WINDOW_FLAG_POPUP_WM_HINT, id)) { + if (!window_get_flag(DisplayServerEnums::WINDOW_FLAG_POPUP_WM_HINT, id)) { toplevels.push_back(id); } else { AccessibilityServer::get_singleton()->window_destroy(id); } } - for (WindowID &id : toplevels) { + for (DisplayServerEnums::WindowID &id : toplevels) { delete_sub_window(id); } windows.clear(); diff --git a/platform/linuxbsd/wayland/display_server_wayland.h b/platform/linuxbsd/wayland/display_server_wayland.h index 043f5caff7ac..397cccea87b3 100644 --- a/platform/linuxbsd/wayland/display_server_wayland.h +++ b/platform/linuxbsd/wayland/display_server_wayland.h @@ -62,15 +62,15 @@ class DisplayServerWayland : public DisplayServer { GDSOFTCLASS(DisplayServerWayland, DisplayServer); struct WindowData { - WindowID id = INVALID_WINDOW_ID; + DisplayServerEnums::WindowID id = DisplayServerEnums::INVALID_WINDOW_ID; - WindowID parent_id = INVALID_WINDOW_ID; + DisplayServerEnums::WindowID parent_id = DisplayServerEnums::INVALID_WINDOW_ID; // For popups. - WindowID root_id = INVALID_WINDOW_ID; + DisplayServerEnums::WindowID root_id = DisplayServerEnums::INVALID_WINDOW_ID; // For toplevels. - List popup_stack; + List popup_stack; Rect2i rect; Size2i max_size; @@ -87,11 +87,11 @@ class DisplayServerWayland : public DisplayServer { // Flags whether we have allocated a buffer through the video drivers. bool visible = false; - DisplayServer::VSyncMode vsync_mode = VSYNC_ENABLED; + DisplayServerEnums::VSyncMode vsync_mode = DisplayServerEnums::VSYNC_ENABLED; uint32_t flags = 0; - DisplayServer::WindowMode mode = WINDOW_MODE_WINDOWED; + DisplayServerEnums::WindowMode mode = DisplayServerEnums::WINDOW_MODE_WINDOWED; Callable rect_changed_callback; Callable window_event_callback; @@ -114,28 +114,28 @@ class DisplayServerWayland : public DisplayServer { CAPABILITY, // New "suspended" wm_capability flag. }; - CursorShape cursor_shape = CURSOR_ARROW; - DisplayServer::MouseMode mouse_mode = DisplayServer::MOUSE_MODE_VISIBLE; - DisplayServer::MouseMode mouse_mode_base = MOUSE_MODE_VISIBLE; - DisplayServer::MouseMode mouse_mode_override = MOUSE_MODE_VISIBLE; + DisplayServerEnums::CursorShape cursor_shape = DisplayServerEnums::CURSOR_ARROW; + DisplayServerEnums::MouseMode mouse_mode = DisplayServerEnums::MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode_base = DisplayServerEnums::MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode_override = DisplayServerEnums::MOUSE_MODE_VISIBLE; bool mouse_mode_override_enabled = false; void _mouse_update_mode(); - HashMap custom_cursors; + HashMap custom_cursors; - HashMap windows; - WindowID window_id_counter = MAIN_WINDOW_ID; + HashMap windows; + DisplayServerEnums::WindowID window_id_counter = DisplayServerEnums::MAIN_WINDOW_ID; WaylandThread wayland_thread; - Context context; + DisplayServerEnums::Context context; bool swap_cancel_ok = false; - // NOTE: These are the based on WINDOW_FLAG_POPUP, which does NOT imply what it + // NOTE: These are the based on DisplayServerEnums::WINDOW_FLAG_POPUP, which does NOT imply what it // seems. It's particularly confusing for our usecase, but just know that these // are the "take all input thx" windows while the `popup_stack` variable keeps // track of all the generic floating window concept. - List popup_menu_list; + List popup_menu_list; BitField last_mouse_monitor_mask = MouseButtonMask::NONE; String ime_text; @@ -166,21 +166,21 @@ class DisplayServerWayland : public DisplayServer { FreeDesktopScreenSaver *screensaver = nullptr; bool screensaver_inhibited = false; #endif - static String _get_app_id_from_context(Context p_context); + static String _get_app_id_from_context(DisplayServerEnums::Context p_context); - void _send_window_event(WindowEvent p_event, WindowID p_window_id = MAIN_WINDOW_ID); + void _send_window_event(DisplayServerEnums::WindowEvent p_event, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID); static void dispatch_input_events(const Ref &p_event); void _dispatch_input_event(const Ref &p_event); - void _update_window_rect(const Rect2i &p_rect, WindowID p_window_id = MAIN_WINDOW_ID); + void _update_window_rect(const Rect2i &p_rect, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID); void try_suspend(); void initialize_tts() const; public: - virtual bool has_feature(Feature p_feature) const override; + virtual bool has_feature(DisplayServerEnums::Feature p_feature) const override; virtual String get_name() const override; @@ -201,16 +201,16 @@ class DisplayServerWayland : public DisplayServer { virtual Color get_accent_color() const override; virtual void set_system_theme_change_callback(const Callable &p_callable) override; - virtual Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, WindowID p_window_id) override; - virtual Error file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, WindowID p_window_id) override; + virtual Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) override; + virtual Error file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) override; #endif virtual void beep() const override; - virtual void mouse_set_mode(MouseMode p_mode) override; - virtual MouseMode mouse_get_mode() const override; - virtual void mouse_set_mode_override(MouseMode p_mode) override; - virtual MouseMode mouse_get_mode_override() const override; + virtual void mouse_set_mode(DisplayServerEnums::MouseMode p_mode) override; + virtual DisplayServerEnums::MouseMode mouse_get_mode() const override; + virtual void mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) override; + virtual DisplayServerEnums::MouseMode mouse_get_mode_override() const override; virtual void mouse_set_mode_override_enabled(bool p_override_enabled) override; virtual bool mouse_is_mode_override_enabled() const override; @@ -226,83 +226,83 @@ class DisplayServerWayland : public DisplayServer { virtual int get_screen_count() const override; virtual int get_primary_screen() const override; - virtual Point2i screen_get_position(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Size2i screen_get_size(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Rect2i screen_get_usable_rect(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual int screen_get_dpi(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_scale(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_refresh_rate(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual Point2i screen_get_position(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Size2i screen_get_size(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Rect2i screen_get_usable_rect(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual int screen_get_dpi(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_scale(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_refresh_rate(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; virtual void screen_set_keep_on(bool p_enable) override; virtual bool screen_is_kept_on() const override; - virtual Vector get_window_list() const override; + virtual Vector get_window_list() const override; - virtual WindowID create_sub_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect = Rect2i(), bool p_exclusive = false, WindowID p_transient_parent = INVALID_WINDOW_ID) override; - virtual void show_window(WindowID p_id) override; - virtual void delete_sub_window(WindowID p_id) override; + virtual DisplayServerEnums::WindowID create_sub_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect = Rect2i(), bool p_exclusive = false, DisplayServerEnums::WindowID p_transient_parent = DisplayServerEnums::INVALID_WINDOW_ID) override; + virtual void show_window(DisplayServerEnums::WindowID p_id) override; + virtual void delete_sub_window(DisplayServerEnums::WindowID p_id) override; - virtual WindowID window_get_active_popup() const override; - virtual void window_set_popup_safe_rect(WindowID p_window, const Rect2i &p_rect) override; - virtual Rect2i window_get_popup_safe_rect(WindowID p_window) const override; + virtual DisplayServerEnums::WindowID window_get_active_popup() const override; + virtual void window_set_popup_safe_rect(DisplayServerEnums::WindowID p_window, const Rect2i &p_rect) override; + virtual Rect2i window_get_popup_safe_rect(DisplayServerEnums::WindowID p_window) const override; - virtual int64_t window_get_native_handle(HandleType p_handle_type, WindowID p_window = MAIN_WINDOW_ID) const override; + virtual int64_t window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual WindowID get_window_at_screen_position(const Point2i &p_position) const override; + virtual DisplayServerEnums::WindowID get_window_at_screen_position(const Point2i &p_position) const override; - virtual void window_attach_instance_id(ObjectID p_instance, WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual ObjectID window_get_attached_instance_id(WindowID p_window_id = MAIN_WINDOW_ID) const override; + virtual void window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual ObjectID window_get_attached_instance_id(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_title(const String &p_title, WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual void window_set_mouse_passthrough(const Vector &p_region, WindowID p_window_id = MAIN_WINDOW_ID) override; + virtual void window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_mouse_passthrough(const Vector &p_region, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual void window_set_window_event_callback(const Callable &p_callable, WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual void window_set_input_event_callback(const Callable &p_callable, WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual void window_set_input_text_callback(const Callable &p_callable, WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual void window_set_drop_files_callback(const Callable &p_callable, WindowID p_window_id = MAIN_WINDOW_ID) override; + virtual void window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual int window_get_current_screen(WindowID p_window_id = MAIN_WINDOW_ID) const override; - virtual void window_set_current_screen(int p_screen, WindowID p_window_id = MAIN_WINDOW_ID) override; + virtual int window_get_current_screen(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual Point2i window_get_position(WindowID p_window_id = MAIN_WINDOW_ID) const override; - virtual Point2i window_get_position_with_decorations(WindowID p_window_id = MAIN_WINDOW_ID) const override; - virtual void window_set_position(const Point2i &p_position, WindowID p_window_id = MAIN_WINDOW_ID) override; + virtual Point2i window_get_position(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Point2i window_get_position_with_decorations(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_max_size(const Size2i p_size, WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual Size2i window_get_max_size(WindowID p_window_id = MAIN_WINDOW_ID) const override; - virtual void gl_window_make_current(DisplayServer::WindowID p_window_id) override; + virtual void window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_max_size(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void gl_window_make_current(DisplayServerEnums::WindowID p_window_id) override; - virtual void window_set_transient(WindowID p_window_id, WindowID p_parent) override; + virtual void window_set_transient(DisplayServerEnums::WindowID p_window_id, DisplayServerEnums::WindowID p_parent) override; - virtual void window_set_min_size(const Size2i p_size, WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual Size2i window_get_min_size(WindowID p_window_id = MAIN_WINDOW_ID) const override; + virtual void window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_min_size(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_size(const Size2i p_size, WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual Size2i window_get_size(WindowID p_window_id = MAIN_WINDOW_ID) const override; - virtual Size2i window_get_size_with_decorations(WindowID p_window_id = MAIN_WINDOW_ID) const override; + virtual void window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_size(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Size2i window_get_size_with_decorations(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual float window_get_scale(WindowID p_window_id = MAIN_WINDOW_ID) const override; + virtual float window_get_scale(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_mode(WindowMode p_mode, WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual WindowMode window_get_mode(WindowID p_window_id = MAIN_WINDOW_ID) const override; + virtual void window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::WindowMode window_get_mode(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual bool window_is_maximize_allowed(WindowID p_window_id = MAIN_WINDOW_ID) const override; + virtual bool window_is_maximize_allowed(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual bool window_get_flag(WindowFlags p_flag, WindowID p_window_id = MAIN_WINDOW_ID) const override; + virtual void window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_request_attention(WindowID p_window_id = MAIN_WINDOW_ID) override; + virtual void window_request_attention(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_move_to_foreground(WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual bool window_is_focused(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_move_to_foreground(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_is_focused(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual bool window_can_draw(WindowID p_window_id = MAIN_WINDOW_ID) const override; + virtual bool window_can_draw(DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) const override; virtual bool can_any_window_draw() const override; - virtual void window_set_ime_active(const bool p_active, WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual void window_set_ime_position(const Point2i &p_pos, WindowID p_window_id = MAIN_WINDOW_ID) override; + virtual void window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; virtual int accessibility_should_increase_contrast() const override; virtual int accessibility_screen_reader_active() const override; @@ -310,19 +310,19 @@ class DisplayServerWayland : public DisplayServer { virtual Point2i ime_get_selection() const override; virtual String ime_get_text() const override; - virtual void window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window_id = MAIN_WINDOW_ID) override; - virtual DisplayServer::VSyncMode window_get_vsync_mode(WindowID p_window_id) const override; + virtual void window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::VSyncMode window_get_vsync_mode(DisplayServerEnums::WindowID p_window_id) const override; - virtual void window_start_drag(WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_start_resize(WindowResizeEdge p_edge, WindowID p_window) override; + virtual void window_start_drag(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_start_resize(DisplayServerEnums::WindowResizeEdge p_edge, DisplayServerEnums::WindowID p_window) override; - virtual void cursor_set_shape(CursorShape p_shape) override; - virtual CursorShape cursor_get_shape() const override; - virtual void cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) override; + virtual void cursor_set_shape(DisplayServerEnums::CursorShape p_shape) override; + virtual DisplayServerEnums::CursorShape cursor_get_shape() const override; + virtual void cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape, const Vector2 &p_hotspot) override; virtual bool get_swap_cancel_ok() override; - virtual Error embed_process(WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) override; + virtual Error embed_process(DisplayServerEnums::WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) override; virtual Error request_close_embedded_process(OS::ProcessID p_pid) override; virtual Error remove_embedded_process(OS::ProcessID p_pid) override; virtual OS::ProcessID get_focused_process_id() override; @@ -344,16 +344,16 @@ class DisplayServerWayland : public DisplayServer { virtual void set_icon(const Ref &p_icon) override; - virtual void set_context(Context p_context) override; + virtual void set_context(DisplayServerEnums::Context p_context) override; virtual bool is_window_transparency_available() const override; - static DisplayServer *create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Point2i *p_position, const Size2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + static DisplayServer *create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Point2i *p_position, const Size2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); static Vector get_rendering_drivers_func(); static void register_wayland_driver(); - DisplayServerWayland(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i &p_resolution, Context p_context, int64_t p_parent_window, Error &r_error); + DisplayServerWayland(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i &p_resolution, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); ~DisplayServerWayland(); }; diff --git a/platform/linuxbsd/wayland/wayland_thread.cpp b/platform/linuxbsd/wayland/wayland_thread.cpp index 07ffb32e9d96..10148cd8d78f 100644 --- a/platform/linuxbsd/wayland/wayland_thread.cpp +++ b/platform/linuxbsd/wayland/wayland_thread.cpp @@ -31,6 +31,7 @@ #include "wayland_thread.h" #include "core/config/engine.h" +#include "core/io/image.h" #ifdef WAYLAND_ENABLED @@ -444,7 +445,7 @@ bool WaylandThread::_load_cursor_theme(int p_cursor_size) { "help" }; - for (int i = 0; i < DisplayServer::CURSOR_MAX; i++) { + for (int i = 0; i < DisplayServerEnums::CURSOR_MAX; i++) { struct wl_cursor *cursor = wl_cursor_theme_get_cursor(wl_cursor_theme, cursor_names[i]); if (!cursor && cursor_names_fallback[i]) { @@ -829,7 +830,7 @@ void WaylandThread::_wl_registry_on_global_remove(void *data, struct wl_registry } if (name == registry->wp_viewporter_name) { - for (KeyValue &pair : registry->wayland_thread->windows) { + for (KeyValue &pair : registry->wayland_thread->windows) { WindowState &ws = pair.value; if (registry->wp_viewporter) { wp_viewporter_destroy(registry->wp_viewporter); @@ -867,7 +868,7 @@ void WaylandThread::_wl_registry_on_global_remove(void *data, struct wl_registry } if (name == registry->wp_fractional_scale_manager_name) { - for (KeyValue &pair : registry->wayland_thread->windows) { + for (KeyValue &pair : registry->wayland_thread->windows) { WindowState &ws = pair.value; if (registry->wp_fractional_scale_manager) { @@ -1368,7 +1369,7 @@ void WaylandThread::_xdg_toplevel_on_configure(void *data, struct xdg_toplevel * // Expect the window to be in a plain state. It will get properly set if the // compositor reports otherwise below. - ws->mode = DisplayServer::WINDOW_MODE_WINDOWED; + ws->mode = DisplayServerEnums::WINDOW_MODE_WINDOWED; ws->maximized = false; ws->fullscreen = false; ws->resizing = false; @@ -1382,12 +1383,12 @@ void WaylandThread::_xdg_toplevel_on_configure(void *data, struct xdg_toplevel * wl_array_for_each(state, states) { switch (*state) { case XDG_TOPLEVEL_STATE_MAXIMIZED: { - ws->mode = DisplayServer::WINDOW_MODE_MAXIMIZED; + ws->mode = DisplayServerEnums::WINDOW_MODE_MAXIMIZED; ws->maximized = true; } break; case XDG_TOPLEVEL_STATE_FULLSCREEN: { - ws->mode = DisplayServer::WINDOW_MODE_FULLSCREEN; + ws->mode = DisplayServerEnums::WINDOW_MODE_FULLSCREEN; ws->fullscreen = true; } break; @@ -1435,7 +1436,7 @@ void WaylandThread::_xdg_toplevel_on_close(void *data, struct xdg_toplevel *xdg_ Ref msg; msg.instantiate(); msg->id = ws->id; - msg->event = DisplayServer::WINDOW_EVENT_CLOSE_REQUEST; + msg->event = DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST; ws->wayland_thread->push_message(msg); } @@ -1523,7 +1524,7 @@ void WaylandThread::_xdg_popup_on_popup_done(void *data, struct xdg_popup *xdg_p Ref ev_msg; ev_msg.instantiate(); ev_msg->id = ws->id; - ev_msg->event = DisplayServer::WINDOW_EVENT_FORCE_CLOSE; + ev_msg->event = DisplayServerEnums::WINDOW_EVENT_FORCE_CLOSE; ws->wayland_thread->push_message(ev_msg); } @@ -1586,7 +1587,7 @@ void WaylandThread::libdecor_frame_on_configure(struct libdecor_frame *frame, st // Expect the window to be in a plain state. It will get properly set if the // compositor reports otherwise below. - ws->mode = DisplayServer::WINDOW_MODE_WINDOWED; + ws->mode = DisplayServerEnums::WINDOW_MODE_WINDOWED; ws->maximized = false; ws->fullscreen = false; ws->resizing = false; @@ -1598,12 +1599,12 @@ void WaylandThread::libdecor_frame_on_configure(struct libdecor_frame *frame, st if (libdecor_configuration_get_window_state(configuration, &window_state)) { if (window_state & LIBDECOR_WINDOW_STATE_MAXIMIZED) { - ws->mode = DisplayServer::WINDOW_MODE_MAXIMIZED; + ws->mode = DisplayServerEnums::WINDOW_MODE_MAXIMIZED; ws->maximized = true; } if (window_state & LIBDECOR_WINDOW_STATE_FULLSCREEN) { - ws->mode = DisplayServer::WINDOW_MODE_FULLSCREEN; + ws->mode = DisplayServerEnums::WINDOW_MODE_FULLSCREEN; ws->fullscreen = true; } @@ -1642,7 +1643,7 @@ void WaylandThread::libdecor_frame_on_close(struct libdecor_frame *frame, void * Ref winevent_msg; winevent_msg.instantiate(); winevent_msg->id = ws->id; - winevent_msg->event = DisplayServer::WINDOW_EVENT_CLOSE_REQUEST; + winevent_msg->event = DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST; ws->wayland_thread->push_message(winevent_msg); @@ -1828,14 +1829,14 @@ void WaylandThread::_wl_pointer_on_leave(void *data, struct wl_pointer *wl_point PointerData &pd = ss->pointer_data_buffer; - if (pd.pointed_id == DisplayServer::INVALID_WINDOW_ID) { + if (pd.pointed_id == DisplayServerEnums::INVALID_WINDOW_ID) { // We're probably on a decoration or some other third-party thing. return; } - DisplayServer::WindowID id = pd.pointed_id; + DisplayServerEnums::WindowID id = pd.pointed_id; - pd.pointed_id = DisplayServer::INVALID_WINDOW_ID; + pd.pointed_id = DisplayServerEnums::INVALID_WINDOW_ID; pd.pressed_button_mask.clear(); DEBUG_LOG_WAYLAND_THREAD(vformat("Pointer left window %d.", id)); @@ -1946,20 +1947,20 @@ void WaylandThread::_wl_pointer_on_frame(void *data, struct wl_pointer *wl_point PointerData &pd = ss->pointer_data_buffer; if (pd.pointed_id != old_pd.pointed_id) { - if (old_pd.pointed_id != DisplayServer::INVALID_WINDOW_ID) { + if (old_pd.pointed_id != DisplayServerEnums::INVALID_WINDOW_ID) { Ref msg; msg.instantiate(); msg->id = old_pd.pointed_id; - msg->event = DisplayServer::WINDOW_EVENT_MOUSE_EXIT; + msg->event = DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT; wayland_thread->push_message(msg); } - if (pd.pointed_id != DisplayServer::INVALID_WINDOW_ID) { + if (pd.pointed_id != DisplayServerEnums::INVALID_WINDOW_ID) { Ref msg; msg.instantiate(); msg->id = pd.pointed_id; - msg->event = DisplayServer::WINDOW_EVENT_MOUSE_ENTER; + msg->event = DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER; wayland_thread->push_message(msg); } @@ -1972,10 +1973,10 @@ void WaylandThread::_wl_pointer_on_frame(void *data, struct wl_pointer *wl_point // wl_pointer::button) within the same wl_pointer::frame. Because of this, we // need to account for when the currently pointed window might be invalid // (third-party or even none) and fall back to the old one. - if (pd.pointed_id != DisplayServer::INVALID_WINDOW_ID) { + if (pd.pointed_id != DisplayServerEnums::INVALID_WINDOW_ID) { ws = ss->wayland_thread->window_get_state(pd.pointed_id); ERR_FAIL_NULL(ws); - } else if (old_pd.pointed_id != DisplayServer::INVALID_WINDOW_ID) { + } else if (old_pd.pointed_id != DisplayServerEnums::INVALID_WINDOW_ID) { ws = ss->wayland_thread->window_get_state(old_pd.pointed_id); ERR_FAIL_NULL(ws); } @@ -2293,7 +2294,7 @@ void WaylandThread::_wl_keyboard_on_enter(void *data, struct wl_keyboard *wl_key Ref msg; msg.instantiate(); msg->id = ws->id; - msg->event = DisplayServer::WINDOW_EVENT_FOCUS_IN; + msg->event = DisplayServerEnums::WINDOW_EVENT_FOCUS_IN; wayland_thread->push_message(msg); DEBUG_LOG_WAYLAND_THREAD(vformat("Keyboard focused window %d.", ws->id)); @@ -2316,7 +2317,7 @@ void WaylandThread::_wl_keyboard_on_leave(void *data, struct wl_keyboard *wl_key ss->repeating_keycode = XKB_KEYCODE_INVALID; - if (ss->focused_id == DisplayServer::INVALID_WINDOW_ID) { + if (ss->focused_id == DisplayServerEnums::INVALID_WINDOW_ID) { // We're probably on a decoration or some other third-party thing. return; } @@ -2324,12 +2325,12 @@ void WaylandThread::_wl_keyboard_on_leave(void *data, struct wl_keyboard *wl_key WindowState *ws = wayland_thread->window_get_state(ss->focused_id); ERR_FAIL_NULL(ws); - ss->focused_id = DisplayServer::INVALID_WINDOW_ID; + ss->focused_id = DisplayServerEnums::INVALID_WINDOW_ID; Ref msg; msg.instantiate(); msg->id = ws->id; - msg->event = DisplayServer::WINDOW_EVENT_FOCUS_OUT; + msg->event = DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT; wayland_thread->push_message(msg); ss->shift_pressed = false; @@ -2348,7 +2349,7 @@ void WaylandThread::_wl_keyboard_on_key(void *data, struct wl_keyboard *wl_keybo SeatState *ss = (SeatState *)data; ERR_FAIL_NULL(ss); - if (ss->focused_id == DisplayServer::INVALID_WINDOW_ID) { + if (ss->focused_id == DisplayServerEnums::INVALID_WINDOW_ID) { return; } @@ -2433,7 +2434,7 @@ void WaylandThread::_wl_data_device_on_leave(void *data, struct wl_data_device * memdelete(wl_data_offer_get_offer_state(ss->wl_data_offer_dnd)); wl_data_offer_destroy(ss->wl_data_offer_dnd); ss->wl_data_offer_dnd = nullptr; - ss->dnd_id = DisplayServer::INVALID_WINDOW_ID; + ss->dnd_id = DisplayServerEnums::INVALID_WINDOW_ID; } } @@ -2470,7 +2471,7 @@ void WaylandThread::_wl_data_device_on_drop(void *data, struct wl_data_device *w memdelete(wl_data_offer_get_offer_state(ss->wl_data_offer_dnd)); wl_data_offer_destroy(ss->wl_data_offer_dnd); ss->wl_data_offer_dnd = nullptr; - ss->dnd_id = DisplayServer::INVALID_WINDOW_ID; + ss->dnd_id = DisplayServerEnums::INVALID_WINDOW_ID; } void WaylandThread::_wl_data_device_on_selection(void *data, struct wl_data_device *wl_data_device, struct wl_data_offer *id) { @@ -2831,14 +2832,14 @@ void WaylandThread::_wp_tablet_tool_on_proximity_out(void *data, struct zwp_tabl TabletToolState *ts = wp_tablet_tool_get_state(wp_tablet_tool_v2); ERR_FAIL_NULL(ts); - if (ts->data_pending.proximal_id == DisplayServer::INVALID_WINDOW_ID) { + if (ts->data_pending.proximal_id == DisplayServerEnums::INVALID_WINDOW_ID) { // We're probably on a decoration or some other third-party thing. return; } - DisplayServer::WindowID id = ts->data_pending.proximal_id; + DisplayServerEnums::WindowID id = ts->data_pending.proximal_id; - ts->data_pending.proximal_id = DisplayServer::INVALID_WINDOW_ID; + ts->data_pending.proximal_id = DisplayServerEnums::INVALID_WINDOW_ID; ts->data_pending.pressed_button_mask.clear(); DEBUG_LOG_WAYLAND_THREAD(vformat("Tablet tool left window %d.", id)); @@ -2974,26 +2975,26 @@ void WaylandThread::_wp_tablet_tool_on_frame(void *data, struct zwp_tablet_tool_ TabletToolData &td = ts->data_pending; if (td.proximal_id != old_td.proximal_id) { - if (old_td.proximal_id != DisplayServer::INVALID_WINDOW_ID) { + if (old_td.proximal_id != DisplayServerEnums::INVALID_WINDOW_ID) { Ref msg; msg.instantiate(); msg->id = old_td.proximal_id; - msg->event = DisplayServer::WINDOW_EVENT_MOUSE_EXIT; + msg->event = DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT; wayland_thread->push_message(msg); } - if (td.proximal_id != DisplayServer::INVALID_WINDOW_ID) { + if (td.proximal_id != DisplayServerEnums::INVALID_WINDOW_ID) { Ref msg; msg.instantiate(); msg->id = td.proximal_id; - msg->event = DisplayServer::WINDOW_EVENT_MOUSE_ENTER; + msg->event = DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER; wayland_thread->push_message(msg); } } - if (td.proximal_id == DisplayServer::INVALID_WINDOW_ID) { + if (td.proximal_id == DisplayServerEnums::INVALID_WINDOW_ID) { // We're probably on a decoration or some other third-party thing. Let's // "commit" the data and call it a day. old_td = td; @@ -3128,7 +3129,7 @@ void WaylandThread::_wp_text_input_on_leave(void *data, struct zwp_text_input_v3 return; } - if (ss->ime_window_id == DisplayServer::INVALID_WINDOW_ID) { + if (ss->ime_window_id == DisplayServerEnums::INVALID_WINDOW_ID) { return; } @@ -3139,7 +3140,7 @@ void WaylandThread::_wp_text_input_on_leave(void *data, struct zwp_text_input_v3 msg->selection = Vector2i(); ss->wayland_thread->push_message(msg); - ss->ime_window_id = DisplayServer::INVALID_WINDOW_ID; + ss->ime_window_id = DisplayServerEnums::INVALID_WINDOW_ID; ss->ime_enabled = false; ss->ime_active = false; ss->ime_text = String(); @@ -3153,7 +3154,7 @@ void WaylandThread::_wp_text_input_on_preedit_string(void *data, struct zwp_text return; } - if (ss->ime_window_id == DisplayServer::INVALID_WINDOW_ID) { + if (ss->ime_window_id == DisplayServerEnums::INVALID_WINDOW_ID) { return; } @@ -3205,7 +3206,7 @@ void WaylandThread::_wp_text_input_on_commit_string(void *data, struct zwp_text_ return; } - if (ss->ime_window_id == DisplayServer::INVALID_WINDOW_ID) { + if (ss->ime_window_id == DisplayServerEnums::INVALID_WINDOW_ID) { return; } @@ -3222,7 +3223,7 @@ void WaylandThread::_wp_text_input_on_done(void *data, struct zwp_text_input_v3 return; } - if (ss->ime_window_id == DisplayServer::INVALID_WINDOW_ID) { + if (ss->ime_window_id == DisplayServerEnums::INVALID_WINDOW_ID) { return; } @@ -3617,7 +3618,7 @@ void WaylandThread::window_state_update_size(WindowState *p_ws, int p_width, int Ref dpi_msg; dpi_msg.instantiate(); dpi_msg->id = p_ws->id; - dpi_msg->event = DisplayServer::WINDOW_EVENT_DPI_CHANGE; + dpi_msg->event = DisplayServerEnums::WINDOW_EVENT_DPI_CHANGE; p_ws->wayland_thread->push_message(dpi_msg); } } @@ -3666,7 +3667,7 @@ void WaylandThread::seat_state_lock_pointer(SeatState *p_ss) { if (p_ss->wp_locked_pointer == nullptr) { struct wl_surface *locked_surface = window_get_wl_surface(p_ss->pointer_data.last_pointed_id); if (locked_surface == nullptr) { - locked_surface = window_get_wl_surface(DisplayServer::MAIN_WINDOW_ID); + locked_surface = window_get_wl_surface(DisplayServerEnums::MAIN_WINDOW_ID); } ERR_FAIL_NULL(locked_surface); @@ -3687,7 +3688,7 @@ void WaylandThread::seat_state_warp_pointer(SeatState *p_ss, int p_x, int p_y) { return; } - if (p_ss->pointer_data.pointed_id == DisplayServer::INVALID_WINDOW_ID) { + if (p_ss->pointer_data.pointed_id == DisplayServerEnums::INVALID_WINDOW_ID) { return; } @@ -3734,7 +3735,7 @@ void WaylandThread::seat_state_update_cursor(SeatState *p_ss) { int scale = 1; if (thread->cursor_visible) { - DisplayServer::CursorShape shape = thread->cursor_shape; + DisplayServerEnums::CursorShape shape = thread->cursor_shape; struct CustomCursor *custom_cursor = thread->custom_cursors.getptr(shape); @@ -3847,7 +3848,7 @@ Ref WaylandThread::pop_message() { return Ref(); } -void WaylandThread::window_create(DisplayServer::WindowID p_window_id, const Size2i &p_size, DisplayServer::WindowID p_parent_id) { +void WaylandThread::window_create(DisplayServerEnums::WindowID p_window_id, const Size2i &p_size, DisplayServerEnums::WindowID p_parent_id) { ERR_FAIL_COND(windows.has(p_window_id)); WindowState &ws = windows[p_window_id]; @@ -3911,7 +3912,7 @@ void WaylandThread::window_create(DisplayServer::WindowID p_window_id, const Siz } } - if (p_parent_id != DisplayServer::INVALID_WINDOW_ID) { + if (p_parent_id != DisplayServerEnums::INVALID_WINDOW_ID) { // NOTE: It's important to set the parent ASAP to avoid misunderstandings with // the compositor. For example, niri immediately resizes the window to full // size as soon as it's configured if it's not parented to another toplevel. @@ -3937,7 +3938,7 @@ void WaylandThread::window_create(DisplayServer::WindowID p_window_id, const Siz window_state_update_size(&ws, ws.rect.size.width, ws.rect.size.height); } -void WaylandThread::window_create_popup(DisplayServer::WindowID p_window_id, DisplayServer::WindowID p_parent_id, Rect2i p_rect) { +void WaylandThread::window_create_popup(DisplayServerEnums::WindowID p_window_id, DisplayServerEnums::WindowID p_parent_id, Rect2i p_rect) { ERR_FAIL_COND(windows.has(p_window_id)); ERR_FAIL_COND(!windows.has(p_parent_id)); @@ -4024,7 +4025,7 @@ void WaylandThread::window_create_popup(DisplayServer::WindowID p_window_id, Dis wl_display_roundtrip(wl_display); } -void WaylandThread::window_destroy(DisplayServer::WindowID p_window_id) { +void WaylandThread::window_destroy(DisplayServerEnums::WindowID p_window_id) { ERR_FAIL_COND(!windows.has(p_window_id)); WindowState &ws = windows[p_window_id]; @@ -4074,7 +4075,7 @@ void WaylandThread::window_destroy(DisplayServer::WindowID p_window_id) { windows.erase(p_window_id); } -struct wl_surface *WaylandThread::window_get_wl_surface(DisplayServer::WindowID p_window_id) const { +struct wl_surface *WaylandThread::window_get_wl_surface(DisplayServerEnums::WindowID p_window_id) const { const WindowState *ws = windows.getptr(p_window_id); if (ws) { return ws->wl_surface; @@ -4083,15 +4084,15 @@ struct wl_surface *WaylandThread::window_get_wl_surface(DisplayServer::WindowID return nullptr; } -WaylandThread::WindowState *WaylandThread::window_get_state(DisplayServer::WindowID p_window_id) { +WaylandThread::WindowState *WaylandThread::window_get_state(DisplayServerEnums::WindowID p_window_id) { return windows.getptr(p_window_id); } -const WaylandThread::WindowState *WaylandThread::window_get_state(DisplayServer::WindowID p_window_id) const { +const WaylandThread::WindowState *WaylandThread::window_get_state(DisplayServerEnums::WindowID p_window_id) const { return windows.getptr(p_window_id); } -Size2i WaylandThread::window_set_size(DisplayServer::WindowID p_window_id, const Size2i &p_size) { +Size2i WaylandThread::window_set_size(DisplayServerEnums::WindowID p_window_id, const Size2i &p_size) { ERR_FAIL_COND_V(!windows.has(p_window_id), p_size); WindowState &ws = windows[p_window_id]; @@ -4149,7 +4150,7 @@ void WaylandThread::beep() const { } } -void WaylandThread::window_start_drag(DisplayServer::WindowID p_window_id) { +void WaylandThread::window_start_drag(DisplayServerEnums::WindowID p_window_id) { ERR_FAIL_COND(!windows.has(p_window_id)); WindowState &ws = windows[p_window_id]; SeatState *ss = wl_seat_get_seat_state(wl_seat_current); @@ -4165,7 +4166,7 @@ void WaylandThread::window_start_drag(DisplayServer::WindowID p_window_id) { #endif } -void WaylandThread::window_start_resize(DisplayServer::WindowResizeEdge p_edge, DisplayServer::WindowID p_window) { +void WaylandThread::window_start_resize(DisplayServerEnums::WindowResizeEdge p_edge, DisplayServerEnums::WindowID p_window) { ERR_FAIL_COND(!windows.has(p_window)); WindowState &ws = windows[p_window]; SeatState *ss = wl_seat_get_seat_state(wl_seat_current); @@ -4173,28 +4174,28 @@ void WaylandThread::window_start_resize(DisplayServer::WindowResizeEdge p_edge, if (ss && ws.xdg_toplevel) { xdg_toplevel_resize_edge edge = XDG_TOPLEVEL_RESIZE_EDGE_NONE; switch (p_edge) { - case DisplayServer::WINDOW_EDGE_TOP_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_TOP_LEFT: { edge = XDG_TOPLEVEL_RESIZE_EDGE_TOP_LEFT; } break; - case DisplayServer::WINDOW_EDGE_TOP: { + case DisplayServerEnums::WINDOW_EDGE_TOP: { edge = XDG_TOPLEVEL_RESIZE_EDGE_TOP; } break; - case DisplayServer::WINDOW_EDGE_TOP_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_TOP_RIGHT: { edge = XDG_TOPLEVEL_RESIZE_EDGE_TOP_RIGHT; } break; - case DisplayServer::WINDOW_EDGE_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_LEFT: { edge = XDG_TOPLEVEL_RESIZE_EDGE_LEFT; } break; - case DisplayServer::WINDOW_EDGE_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_RIGHT: { edge = XDG_TOPLEVEL_RESIZE_EDGE_RIGHT; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM_LEFT: { edge = XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM_LEFT; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM: { edge = XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM_RIGHT: { edge = XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM_RIGHT; } break; default: @@ -4207,28 +4208,28 @@ void WaylandThread::window_start_resize(DisplayServer::WindowResizeEdge p_edge, if (ws.libdecor_frame) { libdecor_resize_edge edge = LIBDECOR_RESIZE_EDGE_NONE; switch (p_edge) { - case DisplayServer::WINDOW_EDGE_TOP_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_TOP_LEFT: { edge = LIBDECOR_RESIZE_EDGE_TOP_LEFT; } break; - case DisplayServer::WINDOW_EDGE_TOP: { + case DisplayServerEnums::WINDOW_EDGE_TOP: { edge = LIBDECOR_RESIZE_EDGE_TOP; } break; - case DisplayServer::WINDOW_EDGE_TOP_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_TOP_RIGHT: { edge = LIBDECOR_RESIZE_EDGE_TOP_RIGHT; } break; - case DisplayServer::WINDOW_EDGE_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_LEFT: { edge = LIBDECOR_RESIZE_EDGE_LEFT; } break; - case DisplayServer::WINDOW_EDGE_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_RIGHT: { edge = LIBDECOR_RESIZE_EDGE_RIGHT; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM_LEFT: { edge = LIBDECOR_RESIZE_EDGE_BOTTOM_LEFT; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM: { edge = LIBDECOR_RESIZE_EDGE_BOTTOM; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM_RIGHT: { edge = LIBDECOR_RESIZE_EDGE_BOTTOM_RIGHT; } break; default: @@ -4239,7 +4240,7 @@ void WaylandThread::window_start_resize(DisplayServer::WindowResizeEdge p_edge, #endif } -void WaylandThread::window_set_parent(DisplayServer::WindowID p_window_id, DisplayServer::WindowID p_parent_id) { +void WaylandThread::window_set_parent(DisplayServerEnums::WindowID p_window_id, DisplayServerEnums::WindowID p_parent_id) { ERR_FAIL_COND(!windows.has(p_window_id)); ERR_FAIL_COND(!windows.has(p_parent_id)); @@ -4264,7 +4265,7 @@ void WaylandThread::window_set_parent(DisplayServer::WindowID p_window_id, Displ } } -void WaylandThread::window_set_max_size(DisplayServer::WindowID p_window_id, const Size2i &p_size) { +void WaylandThread::window_set_max_size(DisplayServerEnums::WindowID p_window_id, const Size2i &p_size) { ERR_FAIL_COND(!windows.has(p_window_id)); WindowState &ws = windows[p_window_id]; @@ -4283,7 +4284,7 @@ void WaylandThread::window_set_max_size(DisplayServer::WindowID p_window_id, con #endif } -void WaylandThread::window_set_min_size(DisplayServer::WindowID p_window_id, const Size2i &p_size) { +void WaylandThread::window_set_min_size(DisplayServerEnums::WindowID p_window_id, const Size2i &p_size) { ERR_FAIL_COND(!windows.has(p_window_id)); WindowState &ws = windows[p_window_id]; @@ -4302,17 +4303,17 @@ void WaylandThread::window_set_min_size(DisplayServer::WindowID p_window_id, con #endif } -bool WaylandThread::window_can_set_mode(DisplayServer::WindowID p_window_id, DisplayServer::WindowMode p_window_mode) const { +bool WaylandThread::window_can_set_mode(DisplayServerEnums::WindowID p_window_id, DisplayServerEnums::WindowMode p_window_mode) const { ERR_FAIL_COND_V(!windows.has(p_window_id), false); const WindowState &ws = windows[p_window_id]; switch (p_window_mode) { - case DisplayServer::WINDOW_MODE_WINDOWED: { + case DisplayServerEnums::WINDOW_MODE_WINDOWED: { // Looks like it's guaranteed. return true; }; - case DisplayServer::WINDOW_MODE_MINIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MINIMIZED: { #ifdef LIBDECOR_ENABLED if (ws.libdecor_frame) { return libdecor_frame_has_capability(ws.libdecor_frame, LIBDECOR_ACTION_MINIMIZE); @@ -4322,7 +4323,7 @@ bool WaylandThread::window_can_set_mode(DisplayServer::WindowID p_window_id, Dis return ws.can_minimize; }; - case DisplayServer::WINDOW_MODE_MAXIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MAXIMIZED: { if (ws.libdecor_frame) { // NOTE: libdecor doesn't seem to have a maximize capability query? // The fact that there's a fullscreen one makes me suspicious. Anyways, @@ -4332,8 +4333,8 @@ bool WaylandThread::window_can_set_mode(DisplayServer::WindowID p_window_id, Dis return ws.can_maximize; }; - case DisplayServer::WINDOW_MODE_FULLSCREEN: - case DisplayServer::WINDOW_MODE_EXCLUSIVE_FULLSCREEN: { + case DisplayServerEnums::WINDOW_MODE_FULLSCREEN: + case DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN: { #ifdef LIBDECOR_ENABLED if (ws.libdecor_frame) { return libdecor_frame_has_capability(ws.libdecor_frame, LIBDECOR_ACTION_FULLSCREEN); @@ -4347,7 +4348,7 @@ bool WaylandThread::window_can_set_mode(DisplayServer::WindowID p_window_id, Dis return false; } -void WaylandThread::window_try_set_mode(DisplayServer::WindowID p_window_id, DisplayServer::WindowMode p_window_mode) { +void WaylandThread::window_try_set_mode(DisplayServerEnums::WindowID p_window_id, DisplayServerEnums::WindowMode p_window_mode) { ERR_FAIL_COND(!windows.has(p_window_id)); WindowState &ws = windows[p_window_id]; @@ -4367,18 +4368,18 @@ void WaylandThread::window_try_set_mode(DisplayServer::WindowID p_window_id, Dis // Return back to a windowed state so that we can apply what the user asked. switch (ws.mode) { - case DisplayServer::WINDOW_MODE_WINDOWED: { + case DisplayServerEnums::WINDOW_MODE_WINDOWED: { // Do nothing. } break; - case DisplayServer::WINDOW_MODE_MINIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MINIMIZED: { // We can't do much according to the xdg_shell protocol. I have no idea // whether this implies that we should return or who knows what. For now // we'll do nothing. // TODO: Test this properly. } break; - case DisplayServer::WINDOW_MODE_MAXIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MAXIMIZED: { // Try to unmaximize. This isn't garaunteed to work actually, so we'll have // to check whether something changed. if (ws.xdg_toplevel) { @@ -4392,8 +4393,8 @@ void WaylandThread::window_try_set_mode(DisplayServer::WindowID p_window_id, Dis #endif // LIBDECOR_ENABLED } break; - case DisplayServer::WINDOW_MODE_FULLSCREEN: - case DisplayServer::WINDOW_MODE_EXCLUSIVE_FULLSCREEN: { + case DisplayServerEnums::WINDOW_MODE_FULLSCREEN: + case DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN: { // Same thing as above, unset fullscreen and check later if it worked. if (ws.xdg_toplevel) { xdg_toplevel_unset_fullscreen(ws.xdg_toplevel); @@ -4410,7 +4411,7 @@ void WaylandThread::window_try_set_mode(DisplayServer::WindowID p_window_id, Dis // Wait for a configure event and hope that something changed. wl_display_roundtrip(wl_display); - if (ws.mode != DisplayServer::WINDOW_MODE_WINDOWED) { + if (ws.mode != DisplayServerEnums::WINDOW_MODE_WINDOWED) { // The compositor refused our "normalization" request. It'd be useless or // unpredictable to attempt setting a new state. We're done. return; @@ -4418,11 +4419,11 @@ void WaylandThread::window_try_set_mode(DisplayServer::WindowID p_window_id, Dis // Ask the compositor to set the state indicated by the new mode. switch (p_window_mode) { - case DisplayServer::WINDOW_MODE_WINDOWED: { + case DisplayServerEnums::WINDOW_MODE_WINDOWED: { // Do nothing. We're already windowed. } break; - case DisplayServer::WINDOW_MODE_MINIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MINIMIZED: { if (!window_can_set_mode(p_window_id, p_window_mode)) { // Minimization is special (read below). Better not mess with it if the // compositor explicitly announces that it doesn't support it. @@ -4441,10 +4442,10 @@ void WaylandThread::window_try_set_mode(DisplayServer::WindowID p_window_id, Dis // We have no way to actually detect this state, so we'll have to report it // manually to the engine (hoping that it worked). In the worst case it'll // get reset by the next configure event. - ws.mode = DisplayServer::WINDOW_MODE_MINIMIZED; + ws.mode = DisplayServerEnums::WINDOW_MODE_MINIMIZED; } break; - case DisplayServer::WINDOW_MODE_MAXIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MAXIMIZED: { if (ws.xdg_toplevel) { xdg_toplevel_set_maximized(ws.xdg_toplevel); } @@ -4456,8 +4457,8 @@ void WaylandThread::window_try_set_mode(DisplayServer::WindowID p_window_id, Dis #endif // LIBDECOR_ENABLED } break; - case DisplayServer::WINDOW_MODE_FULLSCREEN: - case DisplayServer::WINDOW_MODE_EXCLUSIVE_FULLSCREEN: { + case DisplayServerEnums::WINDOW_MODE_FULLSCREEN: + case DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN: { if (ws.xdg_toplevel) { xdg_toplevel_set_fullscreen(ws.xdg_toplevel, nullptr); } @@ -4474,7 +4475,7 @@ void WaylandThread::window_try_set_mode(DisplayServer::WindowID p_window_id, Dis } } -void WaylandThread::window_set_borderless(DisplayServer::WindowID p_window_id, bool p_borderless) { +void WaylandThread::window_set_borderless(DisplayServerEnums::WindowID p_window_id, bool p_borderless) { ERR_FAIL_COND(!windows.has(p_window_id)); WindowState &ws = windows[p_window_id]; @@ -4504,7 +4505,7 @@ void WaylandThread::window_set_borderless(DisplayServer::WindowID p_window_id, b #endif // LIBDECOR_ENABLED } -void WaylandThread::window_set_title(DisplayServer::WindowID p_window_id, const String &p_title) { +void WaylandThread::window_set_title(DisplayServerEnums::WindowID p_window_id, const String &p_title) { ERR_FAIL_COND(!windows.has(p_window_id)); WindowState &ws = windows[p_window_id]; @@ -4519,7 +4520,7 @@ void WaylandThread::window_set_title(DisplayServer::WindowID p_window_id, const } } -void WaylandThread::window_set_app_id(DisplayServer::WindowID p_window_id, const String &p_app_id) { +void WaylandThread::window_set_app_id(DisplayServerEnums::WindowID p_window_id, const String &p_app_id) { ERR_FAIL_COND(!windows.has(p_window_id)); WindowState &ws = windows[p_window_id]; @@ -4596,7 +4597,7 @@ void WaylandThread::set_icon(const Ref &p_icon) { xdg_toplevel_icon_v1_set_name(xdg_icon, "godot"); } - for (KeyValue &pair : windows) { + for (KeyValue &pair : windows) { WindowState &ws = pair.value; #ifdef LIBDECOR_ENABLED if (ws.libdecor_frame) { @@ -4611,14 +4612,14 @@ void WaylandThread::set_icon(const Ref &p_icon) { } } -DisplayServer::WindowMode WaylandThread::window_get_mode(DisplayServer::WindowID p_window_id) const { - ERR_FAIL_COND_V(!windows.has(p_window_id), DisplayServer::WINDOW_MODE_WINDOWED); +DisplayServerEnums::WindowMode WaylandThread::window_get_mode(DisplayServerEnums::WindowID p_window_id) const { + ERR_FAIL_COND_V(!windows.has(p_window_id), DisplayServerEnums::WINDOW_MODE_WINDOWED); const WindowState &ws = windows[p_window_id]; return ws.mode; } -void WaylandThread::window_request_attention(DisplayServer::WindowID p_window_id) { +void WaylandThread::window_request_attention(DisplayServerEnums::WindowID p_window_id) { ERR_FAIL_COND(!windows.has(p_window_id)); WindowState &ws = windows[p_window_id]; @@ -4630,7 +4631,7 @@ void WaylandThread::window_request_attention(DisplayServer::WindowID p_window_id } } -void WaylandThread::window_set_idle_inhibition(DisplayServer::WindowID p_window_id, bool p_enable) { +void WaylandThread::window_set_idle_inhibition(DisplayServerEnums::WindowID p_window_id, bool p_enable) { ERR_FAIL_COND(!windows.has(p_window_id)); WindowState &ws = windows[p_window_id]; @@ -4647,7 +4648,7 @@ void WaylandThread::window_set_idle_inhibition(DisplayServer::WindowID p_window_ } } -bool WaylandThread::window_get_idle_inhibition(DisplayServer::WindowID p_window_id) const { +bool WaylandThread::window_get_idle_inhibition(DisplayServerEnums::WindowID p_window_id) const { ERR_FAIL_COND_V(!windows.has(p_window_id), false); const WindowState &ws = windows[p_window_id]; @@ -4664,7 +4665,7 @@ int WaylandThread::get_screen_count() const { return registry.wl_outputs.size(); } -DisplayServer::WindowID WaylandThread::pointer_get_pointed_window_id() const { +DisplayServerEnums::WindowID WaylandThread::pointer_get_pointed_window_id() const { SeatState *ss = wl_seat_get_seat_state(wl_seat_current); if (ss) { @@ -4698,9 +4699,9 @@ DisplayServer::WindowID WaylandThread::pointer_get_pointed_window_id() const { return ss->pointer_data.pointed_id; } - return DisplayServer::INVALID_WINDOW_ID; + return DisplayServerEnums::INVALID_WINDOW_ID; } -DisplayServer::WindowID WaylandThread::pointer_get_last_pointed_window_id() const { +DisplayServerEnums::WindowID WaylandThread::pointer_get_last_pointed_window_id() const { SeatState *ss = wl_seat_get_seat_state(wl_seat_current); if (ss) { @@ -4734,7 +4735,7 @@ DisplayServer::WindowID WaylandThread::pointer_get_last_pointed_window_id() cons return ss->pointer_data.last_pointed_id; } - return DisplayServer::INVALID_WINDOW_ID; + return DisplayServerEnums::INVALID_WINDOW_ID; } void WaylandThread::pointer_set_constraint(PointerConstraint p_constraint) { @@ -4984,7 +4985,7 @@ Error WaylandThread::init() { } // Update the cursor. - cursor_set_shape(DisplayServer::CURSOR_ARROW); + cursor_set_shape(DisplayServerEnums::CURSOR_ARROW); events_thread.start(_poll_events_thread, &thread_data); @@ -5003,7 +5004,7 @@ void WaylandThread::cursor_set_visible(bool p_visible) { } } -void WaylandThread::cursor_set_shape(DisplayServer::CursorShape p_cursor_shape) { +void WaylandThread::cursor_set_shape(DisplayServerEnums::CursorShape p_cursor_shape) { cursor_shape = p_cursor_shape; for (struct wl_seat *wl_seat : registry.wl_seats) { @@ -5014,7 +5015,7 @@ void WaylandThread::cursor_set_shape(DisplayServer::CursorShape p_cursor_shape) } } -void WaylandThread::cursor_shape_set_custom_image(DisplayServer::CursorShape p_cursor_shape, Ref p_image, const Point2i &p_hotspot) { +void WaylandThread::cursor_shape_set_custom_image(DisplayServerEnums::CursorShape p_cursor_shape, Ref p_image, const Point2i &p_hotspot) { ERR_FAIL_COND(p_image.is_null()); Size2i image_size = p_image->get_size(); @@ -5068,7 +5069,7 @@ void WaylandThread::cursor_shape_set_custom_image(DisplayServer::CursorShape p_c } } -void WaylandThread::cursor_shape_clear_custom_image(DisplayServer::CursorShape p_cursor_shape) { +void WaylandThread::cursor_shape_clear_custom_image(DisplayServerEnums::CursorShape p_cursor_shape) { if (custom_cursors.has(p_cursor_shape)) { CustomCursor cursor = custom_cursors[p_cursor_shape]; custom_cursors.erase(p_cursor_shape); @@ -5083,7 +5084,7 @@ void WaylandThread::cursor_shape_clear_custom_image(DisplayServer::CursorShape p } } -void WaylandThread::window_set_ime_active(const bool p_active, DisplayServer::WindowID p_window_id) { +void WaylandThread::window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window_id) { SeatState *ss = wl_seat_get_seat_state(wl_seat_current); if (ss && ss->wp_text_input && ss->ime_enabled) { @@ -5102,7 +5103,7 @@ void WaylandThread::window_set_ime_active(const bool p_active, DisplayServer::Wi } } -void WaylandThread::window_set_ime_position(const Point2i &p_pos, DisplayServer::WindowID p_window_id) { +void WaylandThread::window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window_id) { SeatState *ss = wl_seat_get_seat_state(wl_seat_current); if (ss && ss->wp_text_input && ss->ime_enabled) { @@ -5350,7 +5351,7 @@ void WaylandThread::primary_set_text(const String &p_text) { } void WaylandThread::commit_surfaces() { - for (KeyValue &pair : windows) { + for (KeyValue &pair : windows) { wl_surface_commit(pair.value.wl_surface); } } @@ -5468,12 +5469,12 @@ bool WaylandThread::wait_frame_suspend_ms(int p_timeout) { return false; } -uint64_t WaylandThread::window_get_last_frame_time(DisplayServer::WindowID p_window_id) const { +uint64_t WaylandThread::window_get_last_frame_time(DisplayServerEnums::WindowID p_window_id) const { ERR_FAIL_COND_V(!windows.has(p_window_id), false); return windows[p_window_id].last_frame_time; } -bool WaylandThread::window_is_suspended(DisplayServer::WindowID p_window_id) const { +bool WaylandThread::window_is_suspended(DisplayServerEnums::WindowID p_window_id) const { ERR_FAIL_COND_V(!windows.has(p_window_id), false); return windows[p_window_id].suspended; } @@ -5483,7 +5484,7 @@ bool WaylandThread::is_fifo_available() const { } bool WaylandThread::is_suspended() const { - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { if (!E.value.suspended) { return false; } @@ -5518,7 +5519,7 @@ void WaylandThread::destroy() { events_thread.wait_to_finish(); } - for (KeyValue &pair : windows) { + for (KeyValue &pair : windows) { WindowState &ws = pair.value; if (ws.wp_fractional_scale) { wp_fractional_scale_v1_destroy(ws.wp_fractional_scale); diff --git a/platform/linuxbsd/wayland/wayland_thread.h b/platform/linuxbsd/wayland/wayland_thread.h index 8aab195bad21..1c542aa51a84 100644 --- a/platform/linuxbsd/wayland/wayland_thread.h +++ b/platform/linuxbsd/wayland/wayland_thread.h @@ -88,11 +88,14 @@ #endif // LIBDECOR_ENABLED #include "core/input/input_event.h" +#include "core/os/os.h" #include "core/os/thread.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #include "wayland_embedder.h" +class Image; + class WaylandThread { public: // Messages used for exchanging information between Godot's and Wayland's thread. @@ -108,7 +111,7 @@ class WaylandThread { GDSOFTCLASS(WindowMessage, Message); public: - DisplayServer::WindowID id = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID id = DisplayServerEnums::INVALID_WINDOW_ID; }; // Message data for window rect changes. @@ -125,7 +128,7 @@ class WaylandThread { GDSOFTCLASS(WindowEventMessage, WindowMessage); public: - DisplayServer::WindowEvent event; + DisplayServerEnums::WindowEvent event; }; class InputEventMessage : public Message { @@ -247,11 +250,11 @@ class WaylandThread { // TODO: Make private? struct WindowState { - DisplayServer::WindowID id = DisplayServer::INVALID_WINDOW_ID; - DisplayServer::WindowID parent_id = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID id = DisplayServerEnums::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID parent_id = DisplayServerEnums::INVALID_WINDOW_ID; Rect2i rect; - DisplayServer::WindowMode mode = DisplayServer::WINDOW_MODE_WINDOWED; + DisplayServerEnums::WindowMode mode = DisplayServerEnums::WINDOW_MODE_WINDOWED; // Toplevel states. bool maximized = false; // MUST obey configure size. @@ -384,8 +387,8 @@ class WaylandThread { MouseButton last_button_pressed = MouseButton::NONE; Point2 last_pressed_position; - DisplayServer::WindowID pointed_id = DisplayServer::INVALID_WINDOW_ID; - DisplayServer::WindowID last_pointed_id = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID pointed_id = DisplayServerEnums::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID last_pointed_id = DisplayServerEnums::INVALID_WINDOW_ID; // This is needed to check for a new double click every time. bool double_click_begun = false; @@ -419,8 +422,8 @@ class WaylandThread { uint64_t button_time = 0; uint64_t motion_time = 0; - DisplayServer::WindowID proximal_id = DisplayServer::INVALID_WINDOW_ID; - DisplayServer::WindowID last_proximal_id = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID proximal_id = DisplayServerEnums::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID last_proximal_id = DisplayServerEnums::INVALID_WINDOW_ID; uint32_t proximity_serial = 0; }; @@ -483,7 +486,7 @@ class WaylandThread { struct wl_keyboard *wl_keyboard = nullptr; // For key events. - DisplayServer::WindowID focused_id = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID focused_id = DisplayServerEnums::INVALID_WINDOW_ID; struct xkb_context *xkb_context = nullptr; struct xkb_keymap *xkb_keymap = nullptr; @@ -522,7 +525,7 @@ class WaylandThread { struct wl_data_device *wl_data_device = nullptr; // Drag and drop. - DisplayServer::WindowID dnd_id = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID dnd_id = DisplayServerEnums::INVALID_WINDOW_ID; struct wl_data_offer *wl_data_offer_dnd = nullptr; uint32_t dnd_enter_serial = 0; @@ -547,7 +550,7 @@ class WaylandThread { // IME. struct zwp_text_input_v3 *wp_text_input = nullptr; - DisplayServer::WindowID ime_window_id = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID ime_window_id = DisplayServerEnums::INVALID_WINDOW_ID; bool ime_enabled = false; bool ime_active = false; String ime_text; @@ -594,7 +597,7 @@ class WaylandThread { Thread events_thread; ThreadData thread_data; - HashMap windows; + HashMap windows; List> messages; @@ -612,34 +615,34 @@ class WaylandThread { int cursor_scale = 1; // Use cursor-shape-v1 protocol if the compositor supports it. - wp_cursor_shape_device_v1_shape standard_cursors[DisplayServer::CURSOR_MAX] = { - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_DEFAULT, //CURSOR_ARROW - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_TEXT, //CURSOR_IBEAM - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_POINTER, //CURSOR_POINTING_HAND - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_CROSSHAIR, //CURSOR_CROSS - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_WAIT, //CURSOR_WAIT - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_PROGRESS, //CURSOR_BUSY - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_GRAB, //CURSOR_DRAG - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_GRABBING, //CURSOR_CAN_DROP - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NO_DROP, //CURSOR_FORBIDDEN - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NS_RESIZE, //CURSOR_VSIZE - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_EW_RESIZE, //CURSOR_HSIZE - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NESW_RESIZE, //CURSOR_BDIAGSIZE - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NWSE_RESIZE, //CURSOR_FDIAGSIZE - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_MOVE, //CURSOR_MOVE - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_ROW_RESIZE, //CURSOR_VSPLIT - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_COL_RESIZE, //CURSOR_HSPLIT - wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_HELP, //CURSOR_HELP + wp_cursor_shape_device_v1_shape standard_cursors[DisplayServerEnums::CURSOR_MAX] = { + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_DEFAULT, //DisplayServerEnums::CURSOR_ARROW + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_TEXT, //DisplayServerEnums::CURSOR_IBEAM + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_POINTER, //DisplayServerEnums::CURSOR_POINTING_HAND + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_CROSSHAIR, //DisplayServerEnums::CURSOR_CROSS + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_WAIT, //DisplayServerEnums::CURSOR_WAIT + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_PROGRESS, //DisplayServerEnums::CURSOR_BUSY + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_GRAB, //DisplayServerEnums::CURSOR_DRAG + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_GRABBING, //DisplayServerEnums::CURSOR_CAN_DROP + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NO_DROP, //DisplayServerEnums::CURSOR_FORBIDDEN + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NS_RESIZE, //DisplayServerEnums::CURSOR_VSIZE + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_EW_RESIZE, //DisplayServerEnums::CURSOR_HSIZE + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NESW_RESIZE, //DisplayServerEnums::CURSOR_BDIAGSIZE + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NWSE_RESIZE, //DisplayServerEnums::CURSOR_FDIAGSIZE + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_MOVE, //DisplayServerEnums::CURSOR_MOVE + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_ROW_RESIZE, //DisplayServerEnums::CURSOR_VSPLIT + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_COL_RESIZE, //DisplayServerEnums::CURSOR_HSPLIT + wp_cursor_shape_device_v1_shape::WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_HELP, //DisplayServerEnums::CURSOR_HELP }; // Fallback to reading $XCURSOR and system themes if the compositor does not. struct wl_cursor_theme *wl_cursor_theme = nullptr; - struct wl_cursor *wl_cursors[DisplayServer::CURSOR_MAX] = {}; + struct wl_cursor *wl_cursors[DisplayServerEnums::CURSOR_MAX] = {}; // User-defined cursor overrides. Take precedence over standard and wl cursors. - HashMap custom_cursors; + HashMap custom_cursors; - DisplayServer::CursorShape cursor_shape = DisplayServer::CURSOR_ARROW; + DisplayServerEnums::CursorShape cursor_shape = DisplayServerEnums::CURSOR_ARROW; bool cursor_visible = true; PointerConstraint pointer_constraint = PointerConstraint::NONE; @@ -1111,40 +1114,40 @@ class WaylandThread { void set_icon(const Ref &p_icon); - void window_create(DisplayServer::WindowID p_window_id, const Size2i &p_size, DisplayServer::WindowID p_parent_id = DisplayServer::INVALID_WINDOW_ID); - void window_create_popup(DisplayServer::WindowID p_window_id, DisplayServer::WindowID p_parent_id, Rect2i p_rect); - void window_destroy(DisplayServer::WindowID p_window_Id); + void window_create(DisplayServerEnums::WindowID p_window_id, const Size2i &p_size, DisplayServerEnums::WindowID p_parent_id = DisplayServerEnums::INVALID_WINDOW_ID); + void window_create_popup(DisplayServerEnums::WindowID p_window_id, DisplayServerEnums::WindowID p_parent_id, Rect2i p_rect); + void window_destroy(DisplayServerEnums::WindowID p_window_Id); - void window_set_parent(DisplayServer::WindowID p_window_id, DisplayServer::WindowID p_parent_id); + void window_set_parent(DisplayServerEnums::WindowID p_window_id, DisplayServerEnums::WindowID p_parent_id); - struct wl_surface *window_get_wl_surface(DisplayServer::WindowID p_window_id) const; - WindowState *window_get_state(DisplayServer::WindowID p_window_id); - const WindowState *window_get_state(DisplayServer::WindowID p_window_id) const; - Size2i window_set_size(DisplayServer::WindowID p_window_id, const Size2i &p_size); + struct wl_surface *window_get_wl_surface(DisplayServerEnums::WindowID p_window_id) const; + WindowState *window_get_state(DisplayServerEnums::WindowID p_window_id); + const WindowState *window_get_state(DisplayServerEnums::WindowID p_window_id) const; + Size2i window_set_size(DisplayServerEnums::WindowID p_window_id, const Size2i &p_size); - void window_start_resize(DisplayServer::WindowResizeEdge p_edge, DisplayServer::WindowID p_window); + void window_start_resize(DisplayServerEnums::WindowResizeEdge p_edge, DisplayServerEnums::WindowID p_window); - void window_set_max_size(DisplayServer::WindowID p_window_id, const Size2i &p_size); - void window_set_min_size(DisplayServer::WindowID p_window_id, const Size2i &p_size); + void window_set_max_size(DisplayServerEnums::WindowID p_window_id, const Size2i &p_size); + void window_set_min_size(DisplayServerEnums::WindowID p_window_id, const Size2i &p_size); - bool window_can_set_mode(DisplayServer::WindowID p_window_id, DisplayServer::WindowMode p_window_mode) const; - void window_try_set_mode(DisplayServer::WindowID p_window_id, DisplayServer::WindowMode p_window_mode); - DisplayServer::WindowMode window_get_mode(DisplayServer::WindowID p_window_id) const; + bool window_can_set_mode(DisplayServerEnums::WindowID p_window_id, DisplayServerEnums::WindowMode p_window_mode) const; + void window_try_set_mode(DisplayServerEnums::WindowID p_window_id, DisplayServerEnums::WindowMode p_window_mode); + DisplayServerEnums::WindowMode window_get_mode(DisplayServerEnums::WindowID p_window_id) const; - void window_set_borderless(DisplayServer::WindowID p_window_id, bool p_borderless); - void window_set_title(DisplayServer::WindowID p_window_id, const String &p_title); - void window_set_app_id(DisplayServer::WindowID p_window_id, const String &p_app_id); + void window_set_borderless(DisplayServerEnums::WindowID p_window_id, bool p_borderless); + void window_set_title(DisplayServerEnums::WindowID p_window_id, const String &p_title); + void window_set_app_id(DisplayServerEnums::WindowID p_window_id, const String &p_app_id); - bool window_is_focused(DisplayServer::WindowID p_window_id); + bool window_is_focused(DisplayServerEnums::WindowID p_window_id); // Optional - requires xdg_activation_v1 - void window_request_attention(DisplayServer::WindowID p_window_id); + void window_request_attention(DisplayServerEnums::WindowID p_window_id); - void window_start_drag(DisplayServer::WindowID p_window_id); + void window_start_drag(DisplayServerEnums::WindowID p_window_id); // Optional - require idle_inhibit_unstable_v1 - void window_set_idle_inhibition(DisplayServer::WindowID p_window_id, bool p_enable); - bool window_get_idle_inhibition(DisplayServer::WindowID p_window_id) const; + void window_set_idle_inhibition(DisplayServerEnums::WindowID p_window_id, bool p_enable); + bool window_get_idle_inhibition(DisplayServerEnums::WindowID p_window_id) const; ScreenData screen_get_data(int p_screen) const; int get_screen_count() const; @@ -1153,19 +1156,19 @@ class WaylandThread { void pointer_set_hint(const Point2i &p_hint); void pointer_warp(const Point2i &p_to); PointerConstraint pointer_get_constraint() const; - DisplayServer::WindowID pointer_get_pointed_window_id() const; - DisplayServer::WindowID pointer_get_last_pointed_window_id() const; + DisplayServerEnums::WindowID pointer_get_pointed_window_id() const; + DisplayServerEnums::WindowID pointer_get_last_pointed_window_id() const; BitField pointer_get_button_mask() const; void cursor_set_visible(bool p_visible); - void cursor_set_shape(DisplayServer::CursorShape p_cursor_shape); + void cursor_set_shape(DisplayServerEnums::CursorShape p_cursor_shape); - void cursor_set_custom_shape(DisplayServer::CursorShape p_cursor_shape); - void cursor_shape_set_custom_image(DisplayServer::CursorShape p_cursor_shape, Ref p_image, const Point2i &p_hotspot); - void cursor_shape_clear_custom_image(DisplayServer::CursorShape p_cursor_shape); + void cursor_set_custom_shape(DisplayServerEnums::CursorShape p_cursor_shape); + void cursor_shape_set_custom_image(DisplayServerEnums::CursorShape p_cursor_shape, Ref p_image, const Point2i &p_hotspot); + void cursor_shape_clear_custom_image(DisplayServerEnums::CursorShape p_cursor_shape); - void window_set_ime_active(const bool p_active, DisplayServer::WindowID p_window_id); - void window_set_ime_position(const Point2i &p_pos, DisplayServer::WindowID p_window_id); + void window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window_id); + void window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window_id); int keyboard_get_layout_count() const; int keyboard_get_current_layout_index() const; @@ -1195,8 +1198,8 @@ class WaylandThread { bool wait_frame_suspend_ms(int p_timeout); bool is_fifo_available() const; - uint64_t window_get_last_frame_time(DisplayServer::WindowID p_window_id) const; - bool window_is_suspended(DisplayServer::WindowID p_window_id) const; + uint64_t window_get_last_frame_time(DisplayServerEnums::WindowID p_window_id) const; + bool window_is_suspended(DisplayServerEnums::WindowID p_window_id) const; bool is_suspended() const; struct godot_embedding_compositor *get_embedding_compositor(); diff --git a/platform/linuxbsd/x11/display_server_x11.cpp b/platform/linuxbsd/x11/display_server_x11.cpp index f5bd74d064ef..7a217a723291 100644 --- a/platform/linuxbsd/x11/display_server_x11.cpp +++ b/platform/linuxbsd/x11/display_server_x11.cpp @@ -56,7 +56,6 @@ #include "x11/dynwrappers/xinerama-so_wrap.h" #include "x11/dynwrappers/xrender-so_wrap.h" #else // !SOWRAP_ENABLED -#undef CursorShape #include #include @@ -179,60 +178,60 @@ static String get_atom_name(Display *p_disp, Atom p_atom) { return ret; } -bool DisplayServerX11::has_feature(Feature p_feature) const { +bool DisplayServerX11::has_feature(DisplayServerEnums::Feature p_feature) const { switch (p_feature) { #ifndef DISABLE_DEPRECATED - case FEATURE_GLOBAL_MENU: { + case DisplayServerEnums::FEATURE_GLOBAL_MENU: { return (native_menu && native_menu->has_feature(NativeMenu::FEATURE_GLOBAL_MENU)); } break; #endif - case FEATURE_SUBWINDOWS: + case DisplayServerEnums::FEATURE_SUBWINDOWS: #ifdef TOUCH_ENABLED - case FEATURE_TOUCHSCREEN: + case DisplayServerEnums::FEATURE_TOUCHSCREEN: #endif - case FEATURE_MOUSE: - case FEATURE_MOUSE_WARP: - case FEATURE_CLIPBOARD: - case FEATURE_CURSOR_SHAPE: - case FEATURE_CUSTOM_CURSOR_SHAPE: - case FEATURE_IME: - case FEATURE_WINDOW_TRANSPARENCY: - //case FEATURE_HIDPI: - case FEATURE_ICON: - //case FEATURE_NATIVE_ICON: - case FEATURE_SWAP_BUFFERS: + case DisplayServerEnums::FEATURE_MOUSE: + case DisplayServerEnums::FEATURE_MOUSE_WARP: + case DisplayServerEnums::FEATURE_CLIPBOARD: + case DisplayServerEnums::FEATURE_CURSOR_SHAPE: + case DisplayServerEnums::FEATURE_CUSTOM_CURSOR_SHAPE: + case DisplayServerEnums::FEATURE_IME: + case DisplayServerEnums::FEATURE_WINDOW_TRANSPARENCY: + //case DisplayServerEnums::FEATURE_HIDPI: + case DisplayServerEnums::FEATURE_ICON: + //case DisplayServerEnums::FEATURE_NATIVE_ICON: + case DisplayServerEnums::FEATURE_SWAP_BUFFERS: #ifdef DBUS_ENABLED - case FEATURE_KEEP_SCREEN_ON: + case DisplayServerEnums::FEATURE_KEEP_SCREEN_ON: #endif - case FEATURE_CLIPBOARD_PRIMARY: - case FEATURE_WINDOW_EMBEDDING: - case FEATURE_WINDOW_DRAG: { + case DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY: + case DisplayServerEnums::FEATURE_WINDOW_EMBEDDING: + case DisplayServerEnums::FEATURE_WINDOW_DRAG: { return true; } break; - //case FEATURE_NATIVE_DIALOG: - //case FEATURE_NATIVE_DIALOG_INPUT: + //case DisplayServerEnums::FEATURE_NATIVE_DIALOG: + //case DisplayServerEnums::FEATURE_NATIVE_DIALOG_INPUT: #ifdef DBUS_ENABLED - case FEATURE_NATIVE_DIALOG_FILE: - case FEATURE_NATIVE_DIALOG_FILE_EXTRA: - case FEATURE_NATIVE_DIALOG_FILE_MIME: { + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_EXTRA: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_MIME: { return (portal_desktop && portal_desktop->is_supported() && portal_desktop->is_file_chooser_supported()); } break; - case FEATURE_NATIVE_COLOR_PICKER: { + case DisplayServerEnums::FEATURE_NATIVE_COLOR_PICKER: { return (portal_desktop && portal_desktop->is_supported() && portal_desktop->is_screenshot_supported()); } break; #endif - case FEATURE_SCREEN_CAPTURE: { + case DisplayServerEnums::FEATURE_SCREEN_CAPTURE: { return !xwayland; } break; #ifdef SPEECHD_ENABLED - case FEATURE_TEXT_TO_SPEECH: { + case DisplayServerEnums::FEATURE_TEXT_TO_SPEECH: { return true; } break; #endif - case FEATURE_ACCESSIBILITY_SCREEN_READER: { + case DisplayServerEnums::FEATURE_ACCESSIBILITY_SCREEN_READER: { return AccessibilityServer::get_singleton()->is_supported(); } break; @@ -504,24 +503,24 @@ void DisplayServerX11::set_system_theme_change_callback(const Callable &p_callab portal_desktop->set_system_theme_change_callback(p_callable); } -Error DisplayServerX11::file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, WindowID p_window_id) { +Error DisplayServerX11::file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) { ERR_FAIL_COND_V(!portal_desktop, ERR_UNAVAILABLE); - WindowID window_id = p_window_id; + DisplayServerEnums::WindowID window_id = p_window_id; if (!windows.has(window_id) || windows[window_id].is_popup) { - window_id = MAIN_WINDOW_ID; + window_id = DisplayServerEnums::MAIN_WINDOW_ID; } String xid = vformat("x11:%x", (uint64_t)windows[window_id].x11_window); return portal_desktop->file_dialog_show(p_window_id, xid, p_title, p_current_directory, String(), p_filename, p_mode, p_filters, TypedArray(), p_callback, false); } -Error DisplayServerX11::file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, WindowID p_window_id) { +Error DisplayServerX11::file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) { ERR_FAIL_COND_V(!portal_desktop, ERR_UNAVAILABLE); - WindowID window_id = p_window_id; + DisplayServerEnums::WindowID window_id = p_window_id; if (!windows.has(window_id) || windows[window_id].is_popup) { - window_id = MAIN_WINDOW_ID; + window_id = DisplayServerEnums::MAIN_WINDOW_ID; } String xid = vformat("x11:%x", (uint64_t)windows[window_id].x11_window); @@ -537,7 +536,7 @@ void DisplayServerX11::beep() const { void DisplayServerX11::_mouse_update_mode() { _THREAD_SAFE_METHOD_ - MouseMode wanted_mouse_mode = mouse_mode_override_enabled + DisplayServerEnums::MouseMode wanted_mouse_mode = mouse_mode_override_enabled ? mouse_mode_override : mouse_mode_base; @@ -545,26 +544,26 @@ void DisplayServerX11::_mouse_update_mode() { return; } - if (mouse_mode == MOUSE_MODE_CAPTURED || mouse_mode == MOUSE_MODE_CONFINED || mouse_mode == MOUSE_MODE_CONFINED_HIDDEN) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN) { XUngrabPointer(x11_display, CurrentTime); } // The only modes that show a cursor are VISIBLE and CONFINED - bool show_cursor = (wanted_mouse_mode == MOUSE_MODE_VISIBLE || wanted_mouse_mode == MOUSE_MODE_CONFINED); - bool previously_shown = (mouse_mode == MOUSE_MODE_VISIBLE || mouse_mode == MOUSE_MODE_CONFINED); + bool show_cursor = (wanted_mouse_mode == DisplayServerEnums::MOUSE_MODE_VISIBLE || wanted_mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED); + bool previously_shown = (mouse_mode == DisplayServerEnums::MOUSE_MODE_VISIBLE || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED); if (show_cursor && !previously_shown) { - WindowID window_id = get_window_at_screen_position(mouse_get_position()); - if (window_id != INVALID_WINDOW_ID && window_mouseover_id != window_id) { - if (window_mouseover_id != INVALID_WINDOW_ID) { - _send_window_event(windows[window_mouseover_id], WINDOW_EVENT_MOUSE_EXIT); + DisplayServerEnums::WindowID window_id = get_window_at_screen_position(mouse_get_position()); + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID && window_mouseover_id != window_id) { + if (window_mouseover_id != DisplayServerEnums::INVALID_WINDOW_ID) { + _send_window_event(windows[window_mouseover_id], DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT); } window_mouseover_id = window_id; - _send_window_event(windows[window_id], WINDOW_EVENT_MOUSE_ENTER); + _send_window_event(windows[window_id], DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER); } } - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { if (show_cursor) { XDefineCursor(x11_display, E.value.x11_window, cursors[current_cursor]); // show cursor } else { @@ -573,12 +572,12 @@ void DisplayServerX11::_mouse_update_mode() { } mouse_mode = wanted_mouse_mode; - if (mouse_mode == MOUSE_MODE_CAPTURED || mouse_mode == MOUSE_MODE_CONFINED || mouse_mode == MOUSE_MODE_CONFINED_HIDDEN) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN) { //flush pending motion events _flush_mouse_motion(); - WindowID window_id = _get_focused_window_or_popup(); + DisplayServerEnums::WindowID window_id = _get_focused_window_or_popup(); if (!windows.has(window_id)) { - window_id = MAIN_WINDOW_ID; + window_id = DisplayServerEnums::MAIN_WINDOW_ID; } WindowData &window = windows[window_id]; @@ -589,7 +588,7 @@ void DisplayServerX11::_mouse_update_mode() { ERR_PRINT("NO GRAB"); } - if (mouse_mode == MOUSE_MODE_CAPTURED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { center.x = window.size.width / 2; center.y = window.size.height / 2; @@ -605,8 +604,8 @@ void DisplayServerX11::_mouse_update_mode() { XFlush(x11_display); } -void DisplayServerX11::mouse_set_mode(MouseMode p_mode) { - ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); +void DisplayServerX11::mouse_set_mode(DisplayServerEnums::MouseMode p_mode) { + ERR_FAIL_INDEX(p_mode, DisplayServerEnums::MouseMode::MOUSE_MODE_MAX); if (p_mode == mouse_mode_base) { return; } @@ -614,12 +613,12 @@ void DisplayServerX11::mouse_set_mode(MouseMode p_mode) { _mouse_update_mode(); } -DisplayServerX11::MouseMode DisplayServerX11::mouse_get_mode() const { +DisplayServerEnums::MouseMode DisplayServerX11::mouse_get_mode() const { return mouse_mode; } -void DisplayServerX11::mouse_set_mode_override(MouseMode p_mode) { - ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); +void DisplayServerX11::mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) { + ERR_FAIL_INDEX(p_mode, DisplayServerEnums::MouseMode::MOUSE_MODE_MAX); if (p_mode == mouse_mode_override) { return; } @@ -627,7 +626,7 @@ void DisplayServerX11::mouse_set_mode_override(MouseMode p_mode) { _mouse_update_mode(); } -DisplayServerX11::MouseMode DisplayServerX11::mouse_get_mode_override() const { +DisplayServerEnums::MouseMode DisplayServerX11::mouse_get_mode_override() const { return mouse_mode_override; } @@ -646,12 +645,12 @@ bool DisplayServerX11::mouse_is_mode_override_enabled() const { void DisplayServerX11::warp_mouse(const Point2i &p_position) { _THREAD_SAFE_METHOD_ - if (mouse_mode == MOUSE_MODE_CAPTURED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { last_mouse_pos = p_position; } else { - WindowID window_id = _get_focused_window_or_popup(); + DisplayServerEnums::WindowID window_id = _get_focused_window_or_popup(); if (!windows.has(window_id)) { - window_id = MAIN_WINDOW_ID; + window_id = DisplayServerEnums::MAIN_WINDOW_ID; } XWarpPointer(x11_display, None, windows[window_id].x11_window, @@ -715,8 +714,8 @@ void DisplayServerX11::clipboard_set(const String &p_text) { internal_clipboard = p_text; } - XSetSelectionOwner(x11_display, XA_PRIMARY, windows[MAIN_WINDOW_ID].x11_window, CurrentTime); - XSetSelectionOwner(x11_display, XInternAtom(x11_display, "CLIPBOARD", 0), windows[MAIN_WINDOW_ID].x11_window, CurrentTime); + XSetSelectionOwner(x11_display, XA_PRIMARY, windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window, CurrentTime); + XSetSelectionOwner(x11_display, XInternAtom(x11_display, "CLIPBOARD", 0), windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window, CurrentTime); } void DisplayServerX11::clipboard_set_primary(const String &p_text) { @@ -728,8 +727,8 @@ void DisplayServerX11::clipboard_set_primary(const String &p_text) { internal_clipboard_primary = p_text; } - XSetSelectionOwner(x11_display, XA_PRIMARY, windows[MAIN_WINDOW_ID].x11_window, CurrentTime); - XSetSelectionOwner(x11_display, XInternAtom(x11_display, "PRIMARY", 0), windows[MAIN_WINDOW_ID].x11_window, CurrentTime); + XSetSelectionOwner(x11_display, XA_PRIMARY, windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window, CurrentTime); + XSetSelectionOwner(x11_display, XInternAtom(x11_display, "PRIMARY", 0), windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window, CurrentTime); } } @@ -971,10 +970,10 @@ String DisplayServerX11::clipboard_get() const { _THREAD_SAFE_METHOD_ String ret; - ret = _clipboard_get(XInternAtom(x11_display, "CLIPBOARD", 0), windows[MAIN_WINDOW_ID].x11_window); + ret = _clipboard_get(XInternAtom(x11_display, "CLIPBOARD", 0), windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window); if (ret.is_empty()) { - ret = _clipboard_get(XA_PRIMARY, windows[MAIN_WINDOW_ID].x11_window); + ret = _clipboard_get(XA_PRIMARY, windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window); } return ret; @@ -984,10 +983,10 @@ String DisplayServerX11::clipboard_get_primary() const { _THREAD_SAFE_METHOD_ String ret; - ret = _clipboard_get(XInternAtom(x11_display, "PRIMARY", 0), windows[MAIN_WINDOW_ID].x11_window); + ret = _clipboard_get(XInternAtom(x11_display, "PRIMARY", 0), windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window); if (ret.is_empty()) { - ret = _clipboard_get(XA_PRIMARY, windows[MAIN_WINDOW_ID].x11_window); + ret = _clipboard_get(XA_PRIMARY, windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window); } return ret; @@ -996,7 +995,7 @@ String DisplayServerX11::clipboard_get_primary() const { Ref DisplayServerX11::clipboard_get_image() const { _THREAD_SAFE_METHOD_ Atom clipboard = XInternAtom(x11_display, "CLIPBOARD", 0); - Window x11_window = windows[MAIN_WINDOW_ID].x11_window; + Window x11_window = windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window; Ref ret; Atom target = _clipboard_get_image_target(clipboard, x11_window); if (target == None) { @@ -1141,7 +1140,7 @@ Ref DisplayServerX11::clipboard_get_image() const { bool DisplayServerX11::clipboard_has_image() const { Atom target = _clipboard_get_image_target( XInternAtom(x11_display, "CLIPBOARD", 0), - windows[MAIN_WINDOW_ID].x11_window); + windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window); return target != None; } @@ -1668,7 +1667,7 @@ int DisplayServerX11::screen_get_dpi(int p_screen) const { if (xrandr_ext_ok) { int count = 0; if (xrr_get_monitors) { - xrr_monitor_info *monitors = xrr_get_monitors(x11_display, windows[MAIN_WINDOW_ID].x11_window, true, &count); + xrr_monitor_info *monitors = xrr_get_monitors(x11_display, windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window, true, &count); if (p_screen < count) { double xdpi = sc.width / (double)monitors[p_screen].mwidth * 25.4; double ydpi = sc.height / (double)monitors[p_screen].mheight * 25.4; @@ -1855,7 +1854,7 @@ float DisplayServerX11::screen_get_refresh_rate(int p_screen) const { int target_y; { int count = 0; - xrr_monitor_info *monitors = xrr_get_monitors(x11_display, windows[MAIN_WINDOW_ID].x11_window, true, &count); + xrr_monitor_info *monitors = xrr_get_monitors(x11_display, windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window, true, &count); ERR_FAIL_NULL_V(monitors, SCREEN_REFRESH_RATE_FALLBACK); if (count <= p_screen) { xrr_free_monitors(monitors); @@ -1866,7 +1865,7 @@ float DisplayServerX11::screen_get_refresh_rate(int p_screen) const { xrr_free_monitors(monitors); } - XRRScreenResources *screen_res = XRRGetScreenResourcesCurrent(x11_display, windows[MAIN_WINDOW_ID].x11_window); + XRRScreenResources *screen_res = XRRGetScreenResourcesCurrent(x11_display, windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window); ERR_FAIL_NULL_V(screen_res, SCREEN_REFRESH_RATE_FALLBACK); XRRModeInfo *mode_info = nullptr; @@ -1908,7 +1907,7 @@ void DisplayServerX11::screen_set_keep_on(bool p_enable) { if (p_enable) { // Attach the inhibit request to the main window, not the last focused window, // on the basis that inhibiting the screensaver is global state for the application. - WindowID window_id = MAIN_WINDOW_ID; + DisplayServerEnums::WindowID window_id = DisplayServerEnums::MAIN_WINDOW_ID; String xid = vformat("x11:%x", (uint64_t)windows[window_id].x11_window); keep_screen_on = portal_desktop->inhibit(xid); } else { @@ -1931,23 +1930,23 @@ bool DisplayServerX11::screen_is_kept_on() const { } #endif -Vector DisplayServerX11::get_window_list() const { +Vector DisplayServerX11::get_window_list() const { _THREAD_SAFE_METHOD_ Vector ret; - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { ret.push_back(E.key); } return ret; } -DisplayServer::WindowID DisplayServerX11::create_sub_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, WindowID p_transient_parent) { +DisplayServerEnums::WindowID DisplayServerX11::create_sub_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, DisplayServerEnums::WindowID p_transient_parent) { _THREAD_SAFE_METHOD_ - WindowID id = _create_window(p_mode, p_vsync_mode, p_flags, p_rect, 0); - for (int i = 0; i < WINDOW_FLAG_MAX; i++) { + DisplayServerEnums::WindowID id = _create_window(p_mode, p_vsync_mode, p_flags, p_rect, 0); + for (int i = 0; i < DisplayServerEnums::WINDOW_FLAG_MAX; i++) { if (p_flags & (1 << i)) { - window_set_flag(WindowFlags(i), true, id); + window_set_flag(DisplayServerEnums::WindowFlags(i), true, id); } } #ifdef RD_ENABLED @@ -1956,14 +1955,14 @@ DisplayServer::WindowID DisplayServerX11::create_sub_window(WindowMode p_mode, V } #endif - if (p_transient_parent != INVALID_WINDOW_ID) { + if (p_transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { window_set_transient(id, p_transient_parent); } return id; } -void DisplayServerX11::show_window(WindowID p_id) { +void DisplayServerX11::show_window(DisplayServerEnums::WindowID p_id) { _THREAD_SAFE_METHOD_ WindowData &wd = windows[p_id]; @@ -1990,7 +1989,7 @@ void DisplayServerX11::show_window(WindowID p_id) { _validate_fullscreen_on_map(p_id); - if (p_id == MAIN_WINDOW_ID) { + if (p_id == DisplayServerEnums::MAIN_WINDOW_ID) { // Get main window size for boot splash drawing. bool get_config_event = false; @@ -2061,11 +2060,11 @@ void DisplayServerX11::show_window(WindowID p_id) { } } -void DisplayServerX11::delete_sub_window(WindowID p_id) { +void DisplayServerX11::delete_sub_window(DisplayServerEnums::WindowID p_id) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_id)); - ERR_FAIL_COND_MSG(p_id == MAIN_WINDOW_ID, "Main window can't be deleted"); + ERR_FAIL_COND_MSG(p_id == DisplayServerEnums::MAIN_WINDOW_ID, "Main window can't be deleted"); popup_close(p_id); @@ -2074,16 +2073,16 @@ void DisplayServerX11::delete_sub_window(WindowID p_id) { DEBUG_LOG_X11("delete_sub_window: %lu (%u) \n", wd.x11_window, p_id); if (window_mouseover_id == p_id) { - window_mouseover_id = INVALID_WINDOW_ID; - _send_window_event(windows[p_id], WINDOW_EVENT_MOUSE_EXIT); + window_mouseover_id = DisplayServerEnums::INVALID_WINDOW_ID; + _send_window_event(windows[p_id], DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT); } while (wd.transient_children.size()) { - window_set_transient(*wd.transient_children.begin(), INVALID_WINDOW_ID); + window_set_transient(*wd.transient_children.begin(), DisplayServerEnums::INVALID_WINDOW_ID); } - if (wd.transient_parent != INVALID_WINDOW_ID) { - window_set_transient(p_id, INVALID_WINDOW_ID); + if (wd.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { + window_set_transient(p_id, DisplayServerEnums::INVALID_WINDOW_ID); } #if defined(RD_ENABLED) @@ -2132,24 +2131,24 @@ void DisplayServerX11::delete_sub_window(WindowID p_id) { windows.erase(p_id); if (last_focused_window == p_id) { - last_focused_window = INVALID_WINDOW_ID; + last_focused_window = DisplayServerEnums::INVALID_WINDOW_ID; } } -int64_t DisplayServerX11::window_get_native_handle(HandleType p_handle_type, WindowID p_window) const { +int64_t DisplayServerX11::window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window) const { ERR_FAIL_COND_V(!windows.has(p_window), 0); switch (p_handle_type) { - case DISPLAY_HANDLE: { + case DisplayServerEnums::DISPLAY_HANDLE: { return (int64_t)x11_display; } - case WINDOW_HANDLE: { + case DisplayServerEnums::WINDOW_HANDLE: { return (int64_t)windows[p_window].x11_window; } - case WINDOW_VIEW: { + case DisplayServerEnums::WINDOW_VIEW: { return 0; // Not supported. } #ifdef GLES3_ENABLED - case OPENGL_CONTEXT: { + case DisplayServerEnums::OPENGL_CONTEXT: { if (gl_manager) { return (int64_t)gl_manager->get_glx_context(p_window); } @@ -2158,25 +2157,25 @@ int64_t DisplayServerX11::window_get_native_handle(HandleType p_handle_type, Win } return 0; } - case EGL_DISPLAY: { + case DisplayServerEnums::EGL_DISPLAY: { if (gl_manager_egl) { return (int64_t)gl_manager_egl->get_display(p_window); } return 0; } - case EGL_CONFIG: { + case DisplayServerEnums::EGL_CONFIG: { if (gl_manager_egl) { return (int64_t)gl_manager_egl->get_config(p_window); } return 0; } - case GLX_VISUALID: { + case DisplayServerEnums::GLX_VISUALID: { if (gl_manager) { return (int64_t)gl_manager->get_glx_visualid(p_window); } return 0; } - case GLX_FBCONFIG: { + case DisplayServerEnums::GLX_FBCONFIG: { if (gl_manager) { return (int64_t)gl_manager->get_glx_fbconfig(p_window); } @@ -2189,24 +2188,24 @@ int64_t DisplayServerX11::window_get_native_handle(HandleType p_handle_type, Win } } -void DisplayServerX11::window_attach_instance_id(ObjectID p_instance, WindowID p_window) { +void DisplayServerX11::window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window) { ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; wd.instance_id = p_instance; } -ObjectID DisplayServerX11::window_get_attached_instance_id(WindowID p_window) const { +ObjectID DisplayServerX11::window_get_attached_instance_id(DisplayServerEnums::WindowID p_window) const { ERR_FAIL_COND_V(!windows.has(p_window), ObjectID()); const WindowData &wd = windows[p_window]; return wd.instance_id; } -DisplayServerX11::WindowID DisplayServerX11::get_window_at_screen_position(const Point2i &p_position) const { - WindowID found_window = INVALID_WINDOW_ID; - WindowID parent_window = INVALID_WINDOW_ID; +DisplayServerEnums::WindowID DisplayServerX11::get_window_at_screen_position(const Point2i &p_position) const { + DisplayServerEnums::WindowID found_window = DisplayServerEnums::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID parent_window = DisplayServerEnums::INVALID_WINDOW_ID; unsigned int focus_order = 0; - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { const WindowData &wd = E.value; // Discard windows with no focus. @@ -2215,7 +2214,7 @@ DisplayServerX11::WindowID DisplayServerX11::get_window_at_screen_position(const } // Find topmost window which contains the given position. - WindowID window_id = E.key; + DisplayServerEnums::WindowID window_id = E.key; Rect2i win_rect = Rect2i(window_get_position(window_id), window_get_size(window_id)); if (win_rect.has_point(p_position)) { // For siblings, pick the window which was focused last. @@ -2230,7 +2229,7 @@ DisplayServerX11::WindowID DisplayServerX11::get_window_at_screen_position(const return found_window; } -void DisplayServerX11::window_set_title(const String &p_title, WindowID p_window) { +void DisplayServerX11::window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2246,7 +2245,7 @@ void DisplayServerX11::window_set_title(const String &p_title, WindowID p_window } } -void DisplayServerX11::window_set_mouse_passthrough(const Vector &p_region, WindowID p_window) { +void DisplayServerX11::window_set_mouse_passthrough(const Vector &p_region, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2254,7 +2253,7 @@ void DisplayServerX11::window_set_mouse_passthrough(const Vector &p_reg _update_window_mouse_passthrough(p_window); } -void DisplayServerX11::_update_window_mouse_passthrough(WindowID p_window) { +void DisplayServerX11::_update_window_mouse_passthrough(DisplayServerEnums::WindowID p_window) { ERR_FAIL_COND(!windows.has(p_window)); ERR_FAIL_COND(!xshaped_ext_ok); @@ -2283,7 +2282,7 @@ void DisplayServerX11::_update_window_mouse_passthrough(WindowID p_window) { } } -void DisplayServerX11::window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerX11::window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2291,7 +2290,7 @@ void DisplayServerX11::window_set_rect_changed_callback(const Callable &p_callab wd.rect_changed_callback = p_callable; } -void DisplayServerX11::window_set_window_event_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerX11::window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2299,7 +2298,7 @@ void DisplayServerX11::window_set_window_event_callback(const Callable &p_callab wd.event_callback = p_callable; } -void DisplayServerX11::window_set_input_event_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerX11::window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2307,7 +2306,7 @@ void DisplayServerX11::window_set_input_event_callback(const Callable &p_callabl wd.input_event_callback = p_callable; } -void DisplayServerX11::window_set_input_text_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerX11::window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2315,7 +2314,7 @@ void DisplayServerX11::window_set_input_text_callback(const Callable &p_callable wd.input_text_callback = p_callable; } -void DisplayServerX11::window_set_drop_files_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerX11::window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2323,7 +2322,7 @@ void DisplayServerX11::window_set_drop_files_callback(const Callable &p_callable wd.drop_files_callback = p_callable; } -int DisplayServerX11::window_get_current_screen(WindowID p_window) const { +int DisplayServerX11::window_get_current_screen(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ int count = get_screen_count(); @@ -2332,7 +2331,7 @@ int DisplayServerX11::window_get_current_screen(WindowID p_window) const { return 0; } - ERR_FAIL_COND_V(!windows.has(p_window), INVALID_SCREEN); + ERR_FAIL_COND_V(!windows.has(p_window), DisplayServerEnums::INVALID_SCREEN); const WindowData &wd = windows[p_window]; const Rect2i window_rect(wd.position, wd.size); @@ -2353,7 +2352,7 @@ int DisplayServerX11::window_get_current_screen(WindowID p_window) const { return screen_index; } -void DisplayServerX11::gl_window_make_current(DisplayServer::WindowID p_window_id) { +void DisplayServerX11::gl_window_make_current(DisplayServerEnums::WindowID p_window_id) { #if defined(GLES3_ENABLED) if (gl_manager) { gl_manager->window_make_current(p_window_id); @@ -2364,7 +2363,7 @@ void DisplayServerX11::gl_window_make_current(DisplayServer::WindowID p_window_i #endif } -void DisplayServerX11::window_set_current_screen(int p_screen, WindowID p_window) { +void DisplayServerX11::window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2383,9 +2382,9 @@ void DisplayServerX11::window_set_current_screen(int p_screen, WindowID p_window return; } - if (window_get_mode(p_window) == WINDOW_MODE_FULLSCREEN || window_get_mode(p_window) == WINDOW_MODE_MAXIMIZED) { - WindowMode current_mode = window_get_mode(p_window); - window_set_mode(WINDOW_MODE_WINDOWED, p_window); + if (window_get_mode(p_window) == DisplayServerEnums::WINDOW_MODE_FULLSCREEN || window_get_mode(p_window) == DisplayServerEnums::WINDOW_MODE_MAXIMIZED) { + DisplayServerEnums::WindowMode current_mode = window_get_mode(p_window); + window_set_mode(DisplayServerEnums::WINDOW_MODE_WINDOWED, p_window); Point2i position = screen_get_position(p_screen); Size2i size = screen_get_size(p_screen); XMoveResizeWindow(x11_display, wd.x11_window, position.x, position.y, size.x, size.y); @@ -2402,7 +2401,7 @@ void DisplayServerX11::window_set_current_screen(int p_screen, WindowID p_window } } -void DisplayServerX11::window_set_transient(WindowID p_window, WindowID p_parent) { +void DisplayServerX11::window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(p_window == p_parent); @@ -2410,21 +2409,21 @@ void DisplayServerX11::window_set_transient(WindowID p_window, WindowID p_parent ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd_window = windows[p_window]; - WindowID prev_parent = wd_window.transient_parent; + DisplayServerEnums::WindowID prev_parent = wd_window.transient_parent; ERR_FAIL_COND(prev_parent == p_parent); DEBUG_LOG_X11("window_set_transient: %lu (%u), prev_parent=%u, parent=%u\n", wd_window.x11_window, p_window, prev_parent, p_parent); ERR_FAIL_COND_MSG(wd_window.on_top, "Windows with the 'on top' can't become transient."); - if (p_parent == INVALID_WINDOW_ID) { + if (p_parent == DisplayServerEnums::INVALID_WINDOW_ID) { //remove transient - ERR_FAIL_COND(prev_parent == INVALID_WINDOW_ID); + ERR_FAIL_COND(prev_parent == DisplayServerEnums::INVALID_WINDOW_ID); ERR_FAIL_COND(!windows.has(prev_parent)); WindowData &wd_parent = windows[prev_parent]; - wd_window.transient_parent = INVALID_WINDOW_ID; + wd_window.transient_parent = DisplayServerEnums::INVALID_WINDOW_ID; wd_parent.transient_children.erase(p_window); XSetTransientForHint(x11_display, wd_window.x11_window, None); @@ -2443,7 +2442,7 @@ void DisplayServerX11::window_set_transient(WindowID p_window, WindowID p_parent } } else { ERR_FAIL_COND(!windows.has(p_parent)); - ERR_FAIL_COND_MSG(prev_parent != INVALID_WINDOW_ID, "Window already has a transient parent"); + ERR_FAIL_COND_MSG(prev_parent != DisplayServerEnums::INVALID_WINDOW_ID, "Window already has a transient parent"); WindowData &wd_parent = windows[p_parent]; wd_window.transient_parent = p_parent; @@ -2454,9 +2453,9 @@ void DisplayServerX11::window_set_transient(WindowID p_window, WindowID p_parent } // Helper method. Assumes that the window id has already been checked and exists. -void DisplayServerX11::_update_size_hints(WindowID p_window) { +void DisplayServerX11::_update_size_hints(DisplayServerEnums::WindowID p_window) { WindowData &wd = windows[p_window]; - WindowMode window_mode = window_get_mode(p_window); + DisplayServerEnums::WindowMode window_mode = window_get_mode(p_window); XSizeHints *xsh = XAllocSizeHints(); // Always set the position and size hints - they should be synchronized with the actual values after the window is mapped anyway @@ -2467,9 +2466,9 @@ void DisplayServerX11::_update_size_hints(WindowID p_window) { xsh->height = wd.size.height; xsh->win_gravity = StaticGravity; - if (window_mode == WINDOW_MODE_FULLSCREEN || window_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if (window_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN || window_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { // Do not set any other hints to prevent the window manager from ignoring the fullscreen flags - } else if (window_get_flag(WINDOW_FLAG_RESIZE_DISABLED, p_window)) { + } else if (window_get_flag(DisplayServerEnums::WINDOW_FLAG_RESIZE_DISABLED, p_window)) { // If resizing is disabled, use the forced size xsh->flags |= PMinSize | PMaxSize; xsh->min_width = wd.size.x; @@ -2494,7 +2493,7 @@ void DisplayServerX11::_update_size_hints(WindowID p_window) { XFree(xsh); } -void DisplayServerX11::_update_motif_wm_hints(WindowID p_window) { +void DisplayServerX11::_update_motif_wm_hints(DisplayServerEnums::WindowID p_window) { Atom motif_wm_hints = XInternAtom(x11_display, "_MOTIF_WM_HINTS", True); if (motif_wm_hints == None) { return; @@ -2528,7 +2527,7 @@ void DisplayServerX11::_update_motif_wm_hints(WindowID p_window) { XChangeProperty(x11_display, wd.x11_window, motif_wm_hints, motif_wm_hints, 32, PropModeReplace, (unsigned char *)&hints, 5); } -void DisplayServerX11::_update_wm_state_hints(WindowID p_window) { +void DisplayServerX11::_update_wm_state_hints(DisplayServerEnums::WindowID p_window) { WindowData &wd = windows[p_window]; Atom type; @@ -2574,7 +2573,7 @@ void DisplayServerX11::_update_wm_state_hints(WindowID p_window) { wd.minimized = hints.has(hidden_atom); } -Point2i DisplayServerX11::window_get_position(WindowID p_window) const { +Point2i DisplayServerX11::window_get_position(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Point2i()); @@ -2583,7 +2582,7 @@ Point2i DisplayServerX11::window_get_position(WindowID p_window) const { return wd.position; } -Point2i DisplayServerX11::window_get_position_with_decorations(WindowID p_window) const { +Point2i DisplayServerX11::window_get_position_with_decorations(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Size2i()); @@ -2617,7 +2616,7 @@ Point2i DisplayServerX11::window_get_position_with_decorations(WindowID p_window return Size2i(x, y); } -void DisplayServerX11::window_set_position(const Point2i &p_position, WindowID p_window) { +void DisplayServerX11::window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2633,7 +2632,7 @@ void DisplayServerX11::window_set_position(const Point2i &p_position, WindowID p _update_real_mouse_position(wd); } -void DisplayServerX11::window_set_max_size(const Size2i p_size, WindowID p_window) { +void DisplayServerX11::window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2654,7 +2653,7 @@ void DisplayServerX11::window_set_max_size(const Size2i p_size, WindowID p_windo XFlush(x11_display); } -Size2i DisplayServerX11::window_get_max_size(WindowID p_window) const { +Size2i DisplayServerX11::window_get_max_size(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Size2i()); @@ -2663,7 +2662,7 @@ Size2i DisplayServerX11::window_get_max_size(WindowID p_window) const { return wd.max_size; } -void DisplayServerX11::window_set_min_size(const Size2i p_size, WindowID p_window) { +void DisplayServerX11::window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2684,7 +2683,7 @@ void DisplayServerX11::window_set_min_size(const Size2i p_size, WindowID p_windo XFlush(x11_display); } -Size2i DisplayServerX11::window_get_min_size(WindowID p_window) const { +Size2i DisplayServerX11::window_get_min_size(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Size2i()); @@ -2693,7 +2692,7 @@ Size2i DisplayServerX11::window_get_min_size(WindowID p_window) const { return wd.min_size; } -void DisplayServerX11::window_set_size(const Size2i p_size, WindowID p_window) { +void DisplayServerX11::window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2754,7 +2753,7 @@ void DisplayServerX11::window_set_size(const Size2i p_size, WindowID p_window) { #endif } -Size2i DisplayServerX11::window_get_size(WindowID p_window) const { +Size2i DisplayServerX11::window_get_size(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Size2i()); @@ -2762,7 +2761,7 @@ Size2i DisplayServerX11::window_get_size(WindowID p_window) const { return wd.size; } -Size2i DisplayServerX11::window_get_size_with_decorations(WindowID p_window) const { +Size2i DisplayServerX11::window_get_size_with_decorations(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Size2i()); @@ -2798,7 +2797,7 @@ Size2i DisplayServerX11::window_get_size_with_decorations(WindowID p_window) con // Just a helper to reduce code duplication in `window_is_maximize_allowed` // and `_set_wm_maximized`. -bool DisplayServerX11::_window_maximize_check(WindowID p_window, const char *p_atom_name) const { +bool DisplayServerX11::_window_maximize_check(DisplayServerEnums::WindowID p_window, const char *p_atom_name) const { ERR_FAIL_COND_V(!windows.has(p_window), false); const WindowData &wd = windows[p_window]; @@ -2870,7 +2869,7 @@ bool DisplayServerX11::_window_maximize_check(WindowID p_window, const char *p_a return retval; } -bool DisplayServerX11::_window_minimize_check(WindowID p_window) const { +bool DisplayServerX11::_window_minimize_check(DisplayServerEnums::WindowID p_window) const { const WindowData &wd = windows[p_window]; // Using EWMH instead of ICCCM, might work better for Wayland users. @@ -2913,7 +2912,7 @@ bool DisplayServerX11::_window_minimize_check(WindowID p_window) const { return false; } -bool DisplayServerX11::_window_fullscreen_check(WindowID p_window) const { +bool DisplayServerX11::_window_fullscreen_check(DisplayServerEnums::WindowID p_window) const { ERR_FAIL_COND_V(!windows.has(p_window), false); const WindowData &wd = windows[p_window]; @@ -2959,7 +2958,7 @@ bool DisplayServerX11::_window_fullscreen_check(WindowID p_window) const { return retval; } -void DisplayServerX11::_validate_fullscreen_on_map(WindowID p_window) { +void DisplayServerX11::_validate_fullscreen_on_map(DisplayServerEnums::WindowID p_window) { // Check if we applied any window modes that didn't take effect while unmapped const WindowData &wd = windows[p_window]; if (wd.fullscreen && !_window_fullscreen_check(p_window)) { @@ -2983,12 +2982,12 @@ void DisplayServerX11::_validate_fullscreen_on_map(WindowID p_window) { } } -bool DisplayServerX11::window_is_maximize_allowed(WindowID p_window) const { +bool DisplayServerX11::window_is_maximize_allowed(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ return _window_maximize_check(p_window, "_NET_WM_ALLOWED_ACTIONS"); } -void DisplayServerX11::_set_wm_maximized(WindowID p_window, bool p_enabled) { +void DisplayServerX11::_set_wm_maximized(DisplayServerEnums::WindowID p_window, bool p_enabled) { ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; @@ -3013,14 +3012,14 @@ void DisplayServerX11::_set_wm_maximized(WindowID p_window, bool p_enabled) { // Wait for effective resizing (so the GLX context is too). // Give up after 0.5s, it's not going to happen on this WM. // https://github.com/godotengine/godot/issues/19978 - for (int attempt = 0; window_get_mode(p_window) != WINDOW_MODE_MAXIMIZED && attempt < 50; attempt++) { + for (int attempt = 0; window_get_mode(p_window) != DisplayServerEnums::WINDOW_MODE_MAXIMIZED && attempt < 50; attempt++) { OS::get_singleton()->delay_usec(10'000); } } wd.maximized = p_enabled; } -void DisplayServerX11::_set_wm_minimized(WindowID p_window, bool p_enabled) { +void DisplayServerX11::_set_wm_minimized(DisplayServerEnums::WindowID p_window, bool p_enabled) { WindowData &wd = windows[p_window]; // Using ICCCM -- Inter-Client Communication Conventions Manual XEvent xev; @@ -3050,7 +3049,7 @@ void DisplayServerX11::_set_wm_minimized(WindowID p_window, bool p_enabled) { wd.minimized = p_enabled; } -void DisplayServerX11::_set_wm_fullscreen(WindowID p_window, bool p_enabled, bool p_exclusive) { +void DisplayServerX11::_set_wm_fullscreen(DisplayServerEnums::WindowID p_window, bool p_enabled, bool p_exclusive) { ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; @@ -3097,61 +3096,61 @@ void DisplayServerX11::_set_wm_fullscreen(WindowID p_window, bool p_enabled, boo } } -void DisplayServerX11::window_set_mode(WindowMode p_mode, WindowID p_window) { +void DisplayServerX11::window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; - WindowMode old_mode = window_get_mode(p_window); + DisplayServerEnums::WindowMode old_mode = window_get_mode(p_window); if (old_mode == p_mode) { return; // do nothing } - if (p_mode != WINDOW_MODE_WINDOWED && wd.embed_parent) { + if (p_mode != DisplayServerEnums::WINDOW_MODE_WINDOWED && wd.embed_parent) { print_line("Embedded window only supports Windowed mode."); return; } // Remove all "extra" modes. switch (old_mode) { - case WINDOW_MODE_WINDOWED: { + case DisplayServerEnums::WINDOW_MODE_WINDOWED: { //do nothing } break; - case WINDOW_MODE_MINIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MINIMIZED: { _set_wm_minimized(p_window, false); } break; - case WINDOW_MODE_EXCLUSIVE_FULLSCREEN: - case WINDOW_MODE_FULLSCREEN: { + case DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN: + case DisplayServerEnums::WINDOW_MODE_FULLSCREEN: { // Only remove fullscreen when necessary. - if (p_mode == WINDOW_MODE_WINDOWED || p_mode == WINDOW_MODE_MAXIMIZED) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_WINDOWED || p_mode == DisplayServerEnums::WINDOW_MODE_MAXIMIZED) { wd.fullscreen = false; wd.exclusive_fullscreen = false; _set_wm_fullscreen(p_window, false, false); } } break; - case WINDOW_MODE_MAXIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MAXIMIZED: { // Varies between target modes, so do nothing here. } break; } switch (p_mode) { - case WINDOW_MODE_WINDOWED: { + case DisplayServerEnums::WINDOW_MODE_WINDOWED: { if (wd.maximized) { _set_wm_maximized(p_window, false); } } break; - case WINDOW_MODE_MINIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MINIMIZED: { _set_wm_minimized(p_window, true); } break; - case WINDOW_MODE_EXCLUSIVE_FULLSCREEN: - case WINDOW_MODE_FULLSCREEN: { - if (window_get_flag(WINDOW_FLAG_ALWAYS_ON_TOP, p_window)) { + case DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN: + case DisplayServerEnums::WINDOW_MODE_FULLSCREEN: { + if (window_get_flag(DisplayServerEnums::WINDOW_FLAG_ALWAYS_ON_TOP, p_window)) { _set_wm_maximized(p_window, true); } wd.fullscreen = true; - if (p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { wd.exclusive_fullscreen = true; _set_wm_fullscreen(p_window, true, true); } else { @@ -3159,56 +3158,56 @@ void DisplayServerX11::window_set_mode(WindowMode p_mode, WindowID p_window) { _set_wm_fullscreen(p_window, true, false); } } break; - case WINDOW_MODE_MAXIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MAXIMIZED: { _set_wm_maximized(p_window, true); } break; } } -DisplayServer::WindowMode DisplayServerX11::window_get_mode(WindowID p_window) const { +DisplayServerEnums::WindowMode DisplayServerX11::window_get_mode(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ - ERR_FAIL_COND_V(!windows.has(p_window), WINDOW_MODE_WINDOWED); + ERR_FAIL_COND_V(!windows.has(p_window), DisplayServerEnums::WINDOW_MODE_WINDOWED); const WindowData &wd = windows[p_window]; if (_window_minimize_check(p_window)) { - return WINDOW_MODE_MINIMIZED; + return DisplayServerEnums::WINDOW_MODE_MINIMIZED; } if (wd.fullscreen) { if (wd.exclusive_fullscreen) { - return WINDOW_MODE_EXCLUSIVE_FULLSCREEN; + return DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN; } - return WINDOW_MODE_FULLSCREEN; + return DisplayServerEnums::WINDOW_MODE_FULLSCREEN; } if (_window_maximize_check(p_window, "_NET_WM_STATE")) { - return WINDOW_MODE_MAXIMIZED; + return DisplayServerEnums::WINDOW_MODE_MAXIMIZED; } - return WINDOW_MODE_WINDOWED; + return DisplayServerEnums::WINDOW_MODE_WINDOWED; } -void DisplayServerX11::window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window) { +void DisplayServerX11::window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; switch (p_flag) { - case WINDOW_FLAG_MAXIMIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_MAXIMIZE_DISABLED: { wd.no_max_btn = p_enabled; _update_motif_wm_hints(p_window); XFlush(x11_display); } break; - case WINDOW_FLAG_MINIMIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_MINIMIZE_DISABLED: { wd.no_min_btn = p_enabled; _update_motif_wm_hints(p_window); XFlush(x11_display); } break; - case WINDOW_FLAG_RESIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_RESIZE_DISABLED: { if (p_enabled && wd.embed_parent) { print_line("Embedded window resize can't be disabled."); return; @@ -3220,13 +3219,13 @@ void DisplayServerX11::window_set_flag(WindowFlags p_flag, bool p_enabled, Windo XFlush(x11_display); } break; - case WINDOW_FLAG_BORDERLESS: { + case DisplayServerEnums::WINDOW_FLAG_BORDERLESS: { wd.borderless = p_enabled; _update_motif_wm_hints(p_window); _update_window_mouse_passthrough(p_window); } break; - case WINDOW_FLAG_ALWAYS_ON_TOP: { - ERR_FAIL_COND_MSG(wd.transient_parent != INVALID_WINDOW_ID, "Can't make a window transient if the 'on top' flag is active."); + case DisplayServerEnums::WINDOW_FLAG_ALWAYS_ON_TOP: { + ERR_FAIL_COND_MSG(wd.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID, "Can't make a window transient if the 'on top' flag is active."); if (p_enabled && wd.embed_parent) { print_line("Embedded window can't become on top."); return; @@ -3255,22 +3254,22 @@ void DisplayServerX11::window_set_flag(WindowFlags p_flag, bool p_enabled, Windo wd.on_top = p_enabled; } break; - case WINDOW_FLAG_TRANSPARENT: { + case DisplayServerEnums::WINDOW_FLAG_TRANSPARENT: { wd.layered_window = p_enabled; } break; - case WINDOW_FLAG_NO_FOCUS: { + case DisplayServerEnums::WINDOW_FLAG_NO_FOCUS: { wd.no_focus = p_enabled; } break; - case WINDOW_FLAG_MOUSE_PASSTHROUGH: { + case DisplayServerEnums::WINDOW_FLAG_MOUSE_PASSTHROUGH: { wd.mpass = p_enabled; _update_window_mouse_passthrough(p_window); } break; - case WINDOW_FLAG_POPUP: { + case DisplayServerEnums::WINDOW_FLAG_POPUP: { XWindowAttributes xwa; XSync(x11_display, False); XGetWindowAttributes(x11_display, wd.x11_window, &xwa); - ERR_FAIL_COND_MSG(p_window == MAIN_WINDOW_ID, "Main window can't be popup."); + ERR_FAIL_COND_MSG(p_window == DisplayServerEnums::MAIN_WINDOW_ID, "Main window can't be popup."); ERR_FAIL_COND_MSG((xwa.map_state == IsViewable) && (wd.is_popup != p_enabled), "Popup flag can't changed while window is opened."); if (p_enabled && wd.embed_parent) { print_line("Embedded window can't be popup."); @@ -3283,38 +3282,38 @@ void DisplayServerX11::window_set_flag(WindowFlags p_flag, bool p_enabled, Windo } } -bool DisplayServerX11::window_get_flag(WindowFlags p_flag, WindowID p_window) const { +bool DisplayServerX11::window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), false); const WindowData &wd = windows[p_window]; switch (p_flag) { - case WINDOW_FLAG_MAXIMIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_MAXIMIZE_DISABLED: { return wd.no_max_btn; } break; - case WINDOW_FLAG_MINIMIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_MINIMIZE_DISABLED: { return wd.no_min_btn; } break; - case WINDOW_FLAG_RESIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_RESIZE_DISABLED: { return wd.resize_disabled; } break; - case WINDOW_FLAG_BORDERLESS: { + case DisplayServerEnums::WINDOW_FLAG_BORDERLESS: { return wd.borderless; } break; - case WINDOW_FLAG_ALWAYS_ON_TOP: { + case DisplayServerEnums::WINDOW_FLAG_ALWAYS_ON_TOP: { return wd.on_top; } break; - case WINDOW_FLAG_TRANSPARENT: { + case DisplayServerEnums::WINDOW_FLAG_TRANSPARENT: { return wd.layered_window; } break; - case WINDOW_FLAG_NO_FOCUS: { + case DisplayServerEnums::WINDOW_FLAG_NO_FOCUS: { return wd.no_focus; } break; - case WINDOW_FLAG_MOUSE_PASSTHROUGH: { + case DisplayServerEnums::WINDOW_FLAG_MOUSE_PASSTHROUGH: { return wd.mpass; } break; - case WINDOW_FLAG_POPUP: { + case DisplayServerEnums::WINDOW_FLAG_POPUP: { return wd.is_popup; } break; default: { @@ -3324,7 +3323,7 @@ bool DisplayServerX11::window_get_flag(WindowFlags p_flag, WindowID p_window) co return false; } -void DisplayServerX11::window_request_attention(WindowID p_window) { +void DisplayServerX11::window_request_attention(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -3350,7 +3349,7 @@ void DisplayServerX11::window_request_attention(WindowID p_window) { XFlush(x11_display); } -void DisplayServerX11::window_move_to_foreground(WindowID p_window) { +void DisplayServerX11::window_move_to_foreground(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -3371,11 +3370,11 @@ void DisplayServerX11::window_move_to_foreground(WindowID p_window) { XFlush(x11_display); } -DisplayServerX11::WindowID DisplayServerX11::get_focused_window() const { +DisplayServerEnums::WindowID DisplayServerX11::get_focused_window() const { return last_focused_window; } -bool DisplayServerX11::window_is_focused(WindowID p_window) const { +bool DisplayServerX11::window_is_focused(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), false); @@ -3385,16 +3384,16 @@ bool DisplayServerX11::window_is_focused(WindowID p_window) const { return wd.focused; } -bool DisplayServerX11::window_can_draw(WindowID p_window) const { +bool DisplayServerX11::window_can_draw(DisplayServerEnums::WindowID p_window) const { //this seems to be all that is provided by X11 - return window_get_mode(p_window) != WINDOW_MODE_MINIMIZED; + return window_get_mode(p_window) != DisplayServerEnums::WINDOW_MODE_MINIMIZED; } bool DisplayServerX11::can_any_window_draw() const { _THREAD_SAFE_METHOD_ - for (const KeyValue &E : windows) { - if (window_get_mode(E.key) != WINDOW_MODE_MINIMIZED) { + for (const KeyValue &E : windows) { + if (window_get_mode(E.key) != DisplayServerEnums::WINDOW_MODE_MINIMIZED) { return true; } } @@ -3402,7 +3401,7 @@ bool DisplayServerX11::can_any_window_draw() const { return false; } -void DisplayServerX11::window_set_ime_active(const bool p_active, WindowID p_window) { +void DisplayServerX11::window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -3445,7 +3444,7 @@ void DisplayServerX11::window_set_ime_active(const bool p_active, WindowID p_win } } -void DisplayServerX11::window_set_ime_position(const Point2i &p_pos, WindowID p_window) { +void DisplayServerX11::window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -3495,23 +3494,23 @@ String DisplayServerX11::ime_get_text() const { return im_text; } -void DisplayServerX11::cursor_set_shape(CursorShape p_shape) { +void DisplayServerX11::cursor_set_shape(DisplayServerEnums::CursorShape p_shape) { _THREAD_SAFE_METHOD_ - ERR_FAIL_INDEX(p_shape, CURSOR_MAX); + ERR_FAIL_INDEX(p_shape, DisplayServerEnums::CURSOR_MAX); if (p_shape == current_cursor) { return; } - if (mouse_mode == MOUSE_MODE_VISIBLE || mouse_mode == MOUSE_MODE_CONFINED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_VISIBLE || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED) { if (cursors[p_shape] != None) { - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { XDefineCursor(x11_display, E.value.x11_window, cursors[p_shape]); } - } else if (cursors[CURSOR_ARROW] != None) { - for (const KeyValue &E : windows) { - XDefineCursor(x11_display, E.value.x11_window, cursors[CURSOR_ARROW]); + } else if (cursors[DisplayServerEnums::CURSOR_ARROW] != None) { + for (const KeyValue &E : windows) { + XDefineCursor(x11_display, E.value.x11_window, cursors[DisplayServerEnums::CURSOR_ARROW]); } } } @@ -3519,17 +3518,17 @@ void DisplayServerX11::cursor_set_shape(CursorShape p_shape) { current_cursor = p_shape; } -DisplayServerX11::CursorShape DisplayServerX11::cursor_get_shape() const { +DisplayServerEnums::CursorShape DisplayServerX11::cursor_get_shape() const { return current_cursor; } -void DisplayServerX11::cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) { +void DisplayServerX11::cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape, const Vector2 &p_hotspot) { _THREAD_SAFE_METHOD_ - ERR_FAIL_INDEX(p_shape, CURSOR_MAX); + ERR_FAIL_INDEX(p_shape, DisplayServerEnums::CURSOR_MAX); if (p_cursor.is_valid()) { - HashMap>::Iterator cursor_c = cursors_cache.find(p_shape); + HashMap>::Iterator cursor_c = cursors_cache.find(p_shape); if (cursor_c) { if (cursor_c->value[0] == p_cursor && cursor_c->value[1] == p_hotspot) { @@ -3575,8 +3574,8 @@ void DisplayServerX11::cursor_set_custom_image(const Ref &p_cursor, Cu cursors_cache.insert(p_shape, params); if (p_shape == current_cursor) { - if (mouse_mode == MOUSE_MODE_VISIBLE || mouse_mode == MOUSE_MODE_CONFINED) { - for (const KeyValue &E : windows) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_VISIBLE || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED) { + for (const KeyValue &E : windows) { XDefineCursor(x11_display, E.value.x11_window, cursors[p_shape]); } } @@ -3592,8 +3591,8 @@ void DisplayServerX11::cursor_set_custom_image(const Ref &p_cursor, Cu cursors_cache.erase(p_shape); - CursorShape c = current_cursor; - current_cursor = CURSOR_MAX; + DisplayServerEnums::CursorShape c = current_cursor; + current_cursor = DisplayServerEnums::CURSOR_MAX; cursor_set_shape(c); } } @@ -3751,10 +3750,10 @@ bool DisplayServerX11::color_picker(const Callable &p_callback) { if (!portal_desktop) { return false; } - WindowID window_id = last_focused_window; + DisplayServerEnums::WindowID window_id = last_focused_window; if (!windows.has(window_id)) { - window_id = MAIN_WINDOW_ID; + window_id = DisplayServerEnums::MAIN_WINDOW_ID; } String xid = vformat("x11:%x", (uint64_t)windows[window_id].x11_window); @@ -3830,7 +3829,7 @@ void DisplayServerX11::_get_key_modifier_state(unsigned int p_x11_state, Refset_meta_pressed((p_x11_state & Mod4Mask)); } -void DisplayServerX11::_handle_key_event(WindowID p_window, XKeyEvent *p_event, LocalVector &p_events, uint32_t &p_event_index, bool p_echo) { +void DisplayServerX11::_handle_key_event(DisplayServerEnums::WindowID p_window, XKeyEvent *p_event, LocalVector &p_events, uint32_t &p_event_index, bool p_echo) { WindowData &wd = windows[p_window]; // X11 functions don't know what const is XKeyEvent *xkeyevent = p_event; @@ -4336,7 +4335,7 @@ void DisplayServerX11::_handle_selection_request_event(XSelectionRequestEvent *p int DisplayServerX11::_xim_preedit_start_callback(::XIM xim, ::XPointer client_data, ::XPointer call_data) { DisplayServerX11 *ds = reinterpret_cast(client_data); - WindowID window_id = ds->_get_focused_window_or_popup(); + DisplayServerEnums::WindowID window_id = ds->_get_focused_window_or_popup(); WindowData &wd = ds->windows[window_id]; if (wd.ime_active) { wd.ime_in_progress = true; @@ -4348,7 +4347,7 @@ int DisplayServerX11::_xim_preedit_start_callback(::XIM xim, ::XPointer client_d void DisplayServerX11::_xim_preedit_done_callback(::XIM xim, ::XPointer client_data, ::XPointer call_data) { DisplayServerX11 *ds = reinterpret_cast(client_data); - WindowID window_id = ds->_get_focused_window_or_popup(); + DisplayServerEnums::WindowID window_id = ds->_get_focused_window_or_popup(); WindowData &wd = ds->windows[window_id]; if (wd.ime_active) { wd.ime_in_progress = false; @@ -4359,7 +4358,7 @@ void DisplayServerX11::_xim_preedit_done_callback(::XIM xim, ::XPointer client_d void DisplayServerX11::_xim_preedit_draw_callback(::XIM xim, ::XPointer client_data, ::XIMPreeditDrawCallbackStruct *call_data) { DisplayServerX11 *ds = reinterpret_cast(client_data); - WindowID window_id = ds->_get_focused_window_or_popup(); + DisplayServerEnums::WindowID window_id = ds->_get_focused_window_or_popup(); WindowData &wd = ds->windows[window_id]; XIMText *xim_text = call_data->text; @@ -4413,16 +4412,16 @@ void DisplayServerX11::_xim_destroy_callback(::XIM im, ::XPointer client_data, DisplayServerX11 *ds = reinterpret_cast(client_data); ds->xim = nullptr; - for (KeyValue &E : ds->windows) { + for (KeyValue &E : ds->windows) { E.value.xic = nullptr; } } void DisplayServerX11::_window_changed(XEvent *event) { - WindowID window_id = MAIN_WINDOW_ID; + DisplayServerEnums::WindowID window_id = DisplayServerEnums::MAIN_WINDOW_ID; // Assign the event to the relevant window - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { if (event->xany.window == E.value.x11_window) { window_id = E.key; break; @@ -4474,8 +4473,8 @@ void DisplayServerX11::_window_changed(XEvent *event) { } } -DisplayServer::WindowID DisplayServerX11::_get_focused_window_or_popup() const { - const List::Element *E = popup_list.back(); +DisplayServerEnums::WindowID DisplayServerX11::_get_focused_window_or_popup() const { + const List::Element *E = popup_list.back(); if (E) { return E->get(); } @@ -4489,7 +4488,7 @@ void DisplayServerX11::_dispatch_input_events(const Ref &p_event) { void DisplayServerX11::_dispatch_input_event(const Ref &p_event) { { - List::Element *E = popup_list.back(); + List::Element *E = popup_list.back(); if (E && Object::cast_to(*p_event)) { // Redirect keyboard input to active popup. if (windows.has(E->get())) { @@ -4503,7 +4502,7 @@ void DisplayServerX11::_dispatch_input_event(const Ref &p_event) { } Ref event_from_window = p_event; - if (event_from_window.is_valid() && event_from_window->get_window_id() != INVALID_WINDOW_ID) { + if (event_from_window.is_valid() && event_from_window->get_window_id() != DisplayServerEnums::INVALID_WINDOW_ID) { // Send to a single window. if (windows.has(event_from_window->get_window_id())) { Callable callable = windows[event_from_window->get_window_id()].input_event_callback; @@ -4514,7 +4513,7 @@ void DisplayServerX11::_dispatch_input_event(const Ref &p_event) { } else { // Send to all windows. Copy all pending callbacks, since callback can erase window. Vector cbs; - for (KeyValue &E : windows) { + for (KeyValue &E : windows) { Callable callable = E.value.input_event_callback; if (callable.is_valid()) { cbs.push_back(callable); @@ -4526,7 +4525,7 @@ void DisplayServerX11::_dispatch_input_event(const Ref &p_event) { } } -void DisplayServerX11::_send_window_event(const WindowData &wd, WindowEvent p_event) { +void DisplayServerX11::_send_window_event(const WindowData &wd, DisplayServerEnums::WindowEvent p_event) { if (wd.event_callback.is_valid()) { Variant event = int(p_event); wd.event_callback.call(event); @@ -4623,16 +4622,16 @@ void DisplayServerX11::_check_pending_events(LocalVector &r_events) { } } -DisplayServer::WindowID DisplayServerX11::window_get_active_popup() const { - const List::Element *E = popup_list.back(); +DisplayServerEnums::WindowID DisplayServerX11::window_get_active_popup() const { + const List::Element *E = popup_list.back(); if (E) { return E->get(); } else { - return INVALID_WINDOW_ID; + return DisplayServerEnums::INVALID_WINDOW_ID; } } -void DisplayServerX11::window_set_popup_safe_rect(WindowID p_window, const Rect2i &p_rect) { +void DisplayServerX11::window_set_popup_safe_rect(DisplayServerEnums::WindowID p_window, const Rect2i &p_rect) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -4640,7 +4639,7 @@ void DisplayServerX11::window_set_popup_safe_rect(WindowID p_window, const Rect2 wd.parent_safe_rect = p_rect; } -Rect2i DisplayServerX11::window_get_popup_safe_rect(WindowID p_window) const { +Rect2i DisplayServerX11::window_get_popup_safe_rect(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Rect2i()); @@ -4648,14 +4647,14 @@ Rect2i DisplayServerX11::window_get_popup_safe_rect(WindowID p_window) const { return wd.parent_safe_rect; } -void DisplayServerX11::popup_open(WindowID p_window) { +void DisplayServerX11::popup_open(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ bool has_popup_ancestor = false; - WindowID transient_root = p_window; + DisplayServerEnums::WindowID transient_root = p_window; while (true) { - WindowID parent = windows[transient_root].transient_parent; - if (parent == INVALID_WINDOW_ID) { + DisplayServerEnums::WindowID parent = windows[transient_root].transient_parent; + if (parent == DisplayServerEnums::INVALID_WINDOW_ID) { break; } else { transient_root = parent; @@ -4667,15 +4666,15 @@ void DisplayServerX11::popup_open(WindowID p_window) { } // Detect tooltips and other similar popups that shouldn't block input to their parent. - bool ignores_input = window_get_flag(WINDOW_FLAG_NO_FOCUS, p_window) && window_get_flag(WINDOW_FLAG_MOUSE_PASSTHROUGH, p_window); + bool ignores_input = window_get_flag(DisplayServerEnums::WINDOW_FLAG_NO_FOCUS, p_window) && window_get_flag(DisplayServerEnums::WINDOW_FLAG_MOUSE_PASSTHROUGH, p_window); WindowData &wd = windows[p_window]; if (wd.is_popup || (has_popup_ancestor && !ignores_input)) { // Find current popup parent, or root popup if new window is not transient. - List::Element *C = nullptr; - List::Element *E = popup_list.back(); + List::Element *C = nullptr; + List::Element *E = popup_list.back(); while (E) { - if (wd.transient_parent != E->get() || wd.transient_parent == INVALID_WINDOW_ID) { + if (wd.transient_parent != E->get() || wd.transient_parent == DisplayServerEnums::INVALID_WINDOW_ID) { C = E; E = E->prev(); } else { @@ -4683,7 +4682,7 @@ void DisplayServerX11::popup_open(WindowID p_window) { } } if (C) { - _send_window_event(windows[C->get()], DisplayServerX11::WINDOW_EVENT_CLOSE_REQUEST); + _send_window_event(windows[C->get()], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); } time_since_popup = OS::get_singleton()->get_ticks_msec(); @@ -4691,18 +4690,18 @@ void DisplayServerX11::popup_open(WindowID p_window) { } } -void DisplayServerX11::popup_close(WindowID p_window) { +void DisplayServerX11::popup_close(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ - List::Element *E = popup_list.find(p_window); + List::Element *E = popup_list.find(p_window); while (E) { - List::Element *F = E->next(); - WindowID win_id = E->get(); + List::Element *F = E->next(); + DisplayServerEnums::WindowID win_id = E->get(); popup_list.erase(E); if (win_id != p_window) { // Only request close on related windows, not this window. We are already processing it. - _send_window_event(windows[win_id], DisplayServerX11::WINDOW_EVENT_CLOSE_REQUEST); + _send_window_event(windows[win_id], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); } E = F; } @@ -4732,8 +4731,8 @@ bool DisplayServerX11::mouse_process_popups() { Vector2i pos = Vector2i(root_attrs.x + root_x, root_attrs.y + root_y); if (mask != last_mouse_monitor_mask) { if (((mask & Button1Mask) || (mask & Button2Mask) || (mask & Button3Mask) || (mask & Button4Mask) || (mask & Button5Mask))) { - List::Element *C = nullptr; - List::Element *E = popup_list.back(); + List::Element *C = nullptr; + List::Element *E = popup_list.back(); // Find top popup to close. while (E) { // Popup window area. @@ -4750,7 +4749,7 @@ bool DisplayServerX11::mouse_process_popups() { } } if (C) { - _send_window_event(windows[C->get()], DisplayServerX11::WINDOW_EVENT_CLOSE_REQUEST); + _send_window_event(windows[C->get()], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); closed = true; } } @@ -4792,7 +4791,7 @@ void DisplayServerX11::process_events() { if (app_focused) { //verify that one of the windows has focus, else send focus out notification bool focus_found = false; - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { if (E.value.focused) { focus_found = true; break; @@ -4818,7 +4817,7 @@ void DisplayServerX11::process_events() { do_mouse_warp = false; // Is the current mouse mode one where it needs to be grabbed. - bool mouse_mode_grab = mouse_mode == MOUSE_MODE_CAPTURED || mouse_mode == MOUSE_MODE_CONFINED || mouse_mode == MOUSE_MODE_CONFINED_HIDDEN; + bool mouse_mode_grab = mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN; xi.pressure = 0; xi.tilt = Vector2(); @@ -4836,10 +4835,10 @@ void DisplayServerX11::process_events() { XEvent &event = events[event_index]; bool ime_window_event = false; - WindowID window_id = MAIN_WINDOW_ID; + DisplayServerEnums::WindowID window_id = DisplayServerEnums::MAIN_WINDOW_ID; // Assign the event to the relevant window - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { if (event.xany.window == E.value.x11_window) { window_id = E.key; break; @@ -5083,8 +5082,8 @@ void DisplayServerX11::process_events() { } if (!mouse_mode_grab && window_mouseover_id == window_id) { - window_mouseover_id = INVALID_WINDOW_ID; - _send_window_event(windows[window_id], WINDOW_EVENT_MOUSE_EXIT); + window_mouseover_id = DisplayServerEnums::INVALID_WINDOW_ID; + _send_window_event(windows[window_id], DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT); } } break; @@ -5096,11 +5095,11 @@ void DisplayServerX11::process_events() { } if (!mouse_mode_grab && window_mouseover_id != window_id) { - if (window_mouseover_id != INVALID_WINDOW_ID) { - _send_window_event(windows[window_mouseover_id], WINDOW_EVENT_MOUSE_EXIT); + if (window_mouseover_id != DisplayServerEnums::INVALID_WINDOW_ID) { + _send_window_event(windows[window_mouseover_id], DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT); } window_mouseover_id = window_id; - _send_window_event(windows[window_id], WINDOW_EVENT_MOUSE_ENTER); + _send_window_event(windows[window_id], DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER); } } break; @@ -5119,15 +5118,15 @@ void DisplayServerX11::process_events() { wd.focus_order = ++focus_order; AccessibilityServer::get_singleton()->set_window_focused(window_id, true); - _send_window_event(wd, WINDOW_EVENT_FOCUS_IN); + _send_window_event(wd, DisplayServerEnums::WINDOW_EVENT_FOCUS_IN); if (mouse_mode_grab) { // Show and update the cursor if confined and the window regained focus. - for (const KeyValue &E : windows) { - if (mouse_mode == MOUSE_MODE_CONFINED) { + for (const KeyValue &E : windows) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED) { XUndefineCursor(x11_display, E.value.x11_window); - } else if (mouse_mode == MOUSE_MODE_CAPTURED || mouse_mode == MOUSE_MODE_CONFINED_HIDDEN) { // Or re-hide it. + } else if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN) { // Or re-hide it. XDefineCursor(x11_display, E.value.x11_window, null_cursor); } @@ -5172,12 +5171,12 @@ void DisplayServerX11::process_events() { Input::get_singleton()->release_pressed_events(); AccessibilityServer::get_singleton()->set_window_focused(window_id, false); - _send_window_event(wd, WINDOW_EVENT_FOCUS_OUT); + _send_window_event(wd, DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT); if (mouse_mode_grab) { - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { //dear X11, I try, I really try, but you never work, you do whatever you want. - if (mouse_mode == MOUSE_MODE_CAPTURED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { // Show the cursor if we're in captured mode so it doesn't look weird. XUndefineCursor(x11_display, E.value.x11_window); } @@ -5225,7 +5224,7 @@ void DisplayServerX11::process_events() { } /* exit in case of a mouse button press */ last_timestamp = event.xbutton.time; - if (mouse_mode == MOUSE_MODE_CAPTURED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { event.xbutton.x = last_mouse_pos.x; event.xbutton.y = last_mouse_pos.y; } @@ -5288,7 +5287,7 @@ void DisplayServerX11::process_events() { } else { DEBUG_LOG_X11("[%u] ButtonRelease window=%lu (%u), button_index=%u \n", frame, event.xbutton.window, window_id, mb->get_button_index()); - WindowID window_id_other = INVALID_WINDOW_ID; + DisplayServerEnums::WindowID window_id_other = DisplayServerEnums::INVALID_WINDOW_ID; Window wd_other_x11_window; if (!wd.focused) { // Propagate the event to the focused window, @@ -5296,7 +5295,7 @@ void DisplayServerX11::process_events() { // Note: This is needed for drag & drop to work between windows, // because the engine expects events to keep being processed // on the same window dragging started. - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { if (E.value.focused) { if (E.key != window_id) { window_id_other = E.key; @@ -5307,7 +5306,7 @@ void DisplayServerX11::process_events() { } } - if (window_id_other != INVALID_WINDOW_ID) { + if (window_id_other != DisplayServerEnums::INVALID_WINDOW_ID) { int x, y; Window child; XTranslateCoordinates(x11_display, wd.x11_window, wd_other_x11_window, event.xbutton.x, event.xbutton.y, &x, &y, &child); @@ -5328,13 +5327,13 @@ void DisplayServerX11::process_events() { // The X11 API requires filtering one-by-one through the motion // notify events, in order to figure out which event is the one // generated by warping the mouse pointer. - WindowID focused_window_id = _get_focused_window_or_popup(); + DisplayServerEnums::WindowID focused_window_id = _get_focused_window_or_popup(); if (!windows.has(focused_window_id)) { - focused_window_id = MAIN_WINDOW_ID; + focused_window_id = DisplayServerEnums::MAIN_WINDOW_ID; } while (true) { - if (mouse_mode == MOUSE_MODE_CAPTURED && event.xmotion.x == windows[focused_window_id].size.width / 2 && event.xmotion.y == windows[focused_window_id].size.height / 2) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED && event.xmotion.x == windows[focused_window_id].size.width / 2 && event.xmotion.y == windows[focused_window_id].size.height / 2) { //this is likely the warp event since it was warped here center = Vector2(event.xmotion.x, event.xmotion.y); break; @@ -5375,7 +5374,7 @@ void DisplayServerX11::process_events() { const WindowData &wd = windows[window_id]; bool focused = wd.focused; - if (mouse_mode == MOUSE_MODE_CAPTURED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { if (xi.relative_motion.x == 0 && xi.relative_motion.y == 0) { break; } @@ -5400,7 +5399,7 @@ void DisplayServerX11::process_events() { Point2i rel; // Only use raw input if in capture mode. Otherwise use the classic behavior. - if (mouse_mode == MOUSE_MODE_CAPTURED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { rel = xi.relative_motion; } else { rel = pos - last_mouse_pos; @@ -5409,7 +5408,7 @@ void DisplayServerX11::process_events() { // Reset to prevent lingering motion xi.relative_motion.x = 0; xi.relative_motion.y = 0; - if (mouse_mode == MOUSE_MODE_CAPTURED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { pos = Point2i(windows[focused_window_id].size.width / 2, windows[focused_window_id].size.height / 2); } @@ -5466,7 +5465,7 @@ void DisplayServerX11::process_events() { // Note: This is needed for drag & drop to work between windows, // because the engine expects events to keep being processed // on the same window dragging started. - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { const WindowData &wd_other = E.value; if (wd_other.focused) { int x, y; @@ -5552,7 +5551,7 @@ void DisplayServerX11::process_events() { break; } if ((unsigned int)event.xclient.data.l[0] == (unsigned int)wm_delete) { - _send_window_event(windows[window_id], WINDOW_EVENT_CLOSE_REQUEST); + _send_window_event(windows[window_id], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); } else if ((unsigned int)event.xclient.message_type == (unsigned int)xdnd_enter) { @@ -5617,8 +5616,8 @@ void DisplayServerX11::process_events() { XFlush(x11_display); if (do_mouse_warp) { - XWarpPointer(x11_display, None, windows[MAIN_WINDOW_ID].x11_window, - 0, 0, 0, 0, (int)windows[MAIN_WINDOW_ID].size.width / 2, (int)windows[MAIN_WINDOW_ID].size.height / 2); + XWarpPointer(x11_display, None, windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window, + 0, 0, 0, 0, (int)windows[DisplayServerEnums::MAIN_WINDOW_ID].size.width / 2, (int)windows[DisplayServerEnums::MAIN_WINDOW_ID].size.height / 2); /* Window root, child; @@ -5671,19 +5670,19 @@ void DisplayServerX11::_update_context(WindowData &wd) { if (classHint) { CharString name_str; switch (context) { - case CONTEXT_EDITOR: + case DisplayServerEnums::CONTEXT_EDITOR: name_str = "Godot_Editor"; break; - case CONTEXT_PROJECTMAN: + case DisplayServerEnums::CONTEXT_PROJECTMAN: name_str = "Godot_ProjectList"; break; - case CONTEXT_ENGINE: + case DisplayServerEnums::CONTEXT_ENGINE: name_str = "Godot_Engine"; break; } CharString class_str; - if (context == CONTEXT_ENGINE) { + if (context == DisplayServerEnums::CONTEXT_ENGINE) { String config_name = GLOBAL_GET("application/config/name"); if (config_name.length() == 0) { class_str = "Godot_Engine"; @@ -5702,12 +5701,12 @@ void DisplayServerX11::_update_context(WindowData &wd) { } } -void DisplayServerX11::set_context(Context p_context) { +void DisplayServerX11::set_context(DisplayServerEnums::Context p_context) { _THREAD_SAFE_METHOD_ context = p_context; - for (KeyValue &E : windows) { + for (KeyValue &E : windows) { _update_context(E.value); } } @@ -5742,7 +5741,7 @@ int set_icon_errorhandler(Display *dpy, XErrorEvent *ev) { void DisplayServerX11::set_icon(const Ref &p_icon) { _THREAD_SAFE_METHOD_ - WindowData &wd = windows[MAIN_WINDOW_ID]; + WindowData &wd = windows[DisplayServerEnums::MAIN_WINDOW_ID]; int (*oldHandler)(Display *, XErrorEvent *) = XSetErrorHandler(&set_icon_errorhandler); @@ -5820,7 +5819,7 @@ void DisplayServerX11::set_icon(const Ref &p_icon) { XSetErrorHandler(oldHandler); } -void DisplayServerX11::window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window) { +void DisplayServerX11::window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) if (rendering_context) { @@ -5830,15 +5829,15 @@ void DisplayServerX11::window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mo #if defined(GLES3_ENABLED) if (gl_manager) { - gl_manager->set_use_vsync(p_vsync_mode != DisplayServer::VSYNC_DISABLED); + gl_manager->set_use_vsync(p_vsync_mode != DisplayServerEnums::VSYNC_DISABLED); } if (gl_manager_egl) { - gl_manager_egl->set_use_vsync(p_vsync_mode != DisplayServer::VSYNC_DISABLED); + gl_manager_egl->set_use_vsync(p_vsync_mode != DisplayServerEnums::VSYNC_DISABLED); } #endif } -DisplayServer::VSyncMode DisplayServerX11::window_get_vsync_mode(WindowID p_window) const { +DisplayServerEnums::VSyncMode DisplayServerX11::window_get_vsync_mode(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) if (rendering_context) { @@ -5847,16 +5846,16 @@ DisplayServer::VSyncMode DisplayServerX11::window_get_vsync_mode(WindowID p_wind #endif #if defined(GLES3_ENABLED) if (gl_manager) { - return gl_manager->is_using_vsync() ? DisplayServer::VSYNC_ENABLED : DisplayServer::VSYNC_DISABLED; + return gl_manager->is_using_vsync() ? DisplayServerEnums::VSYNC_ENABLED : DisplayServerEnums::VSYNC_DISABLED; } if (gl_manager_egl) { - return gl_manager_egl->is_using_vsync() ? DisplayServer::VSYNC_ENABLED : DisplayServer::VSYNC_DISABLED; + return gl_manager_egl->is_using_vsync() ? DisplayServerEnums::VSYNC_ENABLED : DisplayServerEnums::VSYNC_DISABLED; } #endif - return DisplayServer::VSYNC_ENABLED; + return DisplayServerEnums::VSYNC_ENABLED; } -void DisplayServerX11::window_start_drag(WindowID p_window) { +void DisplayServerX11::window_start_drag(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -5894,10 +5893,10 @@ void DisplayServerX11::window_start_drag(WindowID p_window) { XSync(x11_display, 0); } -void DisplayServerX11::window_start_resize(WindowResizeEdge p_edge, WindowID p_window) { +void DisplayServerX11::window_start_resize(DisplayServerEnums::WindowResizeEdge p_edge, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ - ERR_FAIL_INDEX(int(p_edge), WINDOW_EDGE_MAX); + ERR_FAIL_INDEX(int(p_edge), DisplayServerEnums::WINDOW_EDGE_MAX); ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; @@ -5928,28 +5927,28 @@ void DisplayServerX11::window_start_resize(WindowResizeEdge p_edge, WindowID p_w } switch (p_edge) { - case DisplayServer::WINDOW_EDGE_TOP_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_TOP_LEFT: { m.data.l[2] = _NET_WM_MOVERESIZE_SIZE_TOPLEFT; } break; - case DisplayServer::WINDOW_EDGE_TOP: { + case DisplayServerEnums::WINDOW_EDGE_TOP: { m.data.l[2] = _NET_WM_MOVERESIZE_SIZE_TOP; } break; - case DisplayServer::WINDOW_EDGE_TOP_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_TOP_RIGHT: { m.data.l[2] = _NET_WM_MOVERESIZE_SIZE_TOPRIGHT; } break; - case DisplayServer::WINDOW_EDGE_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_LEFT: { m.data.l[2] = _NET_WM_MOVERESIZE_SIZE_LEFT; } break; - case DisplayServer::WINDOW_EDGE_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_RIGHT: { m.data.l[2] = _NET_WM_MOVERESIZE_SIZE_RIGHT; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM_LEFT: { m.data.l[2] = _NET_WM_MOVERESIZE_SIZE_BOTTOMLEFT; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM: { m.data.l[2] = _NET_WM_MOVERESIZE_SIZE_BOTTOM; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM_RIGHT: { m.data.l[2] = _NET_WM_MOVERESIZE_SIZE_BOTTOMRIGHT; } break; default: @@ -6072,7 +6071,7 @@ void DisplayServerX11::_set_window_taskbar_pager_enabled(Window p_window, bool p XSendEvent(x11_display, DefaultRootWindow(x11_display), False, SubstructureRedirectMask | SubstructureNotifyMask, (XEvent *)&xev); } -Error DisplayServerX11::embed_process(WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) { +Error DisplayServerX11::embed_process(DisplayServerEnums::WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), FAILED); @@ -6286,7 +6285,7 @@ Vector DisplayServerX11::get_rendering_drivers_func() { return drivers; } -DisplayServer *DisplayServerX11::create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServer *DisplayServerX11::create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { DisplayServer *ds = memnew(DisplayServerX11(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_position, p_resolution, p_screen, p_context, p_parent_window, r_error)); return ds; } @@ -6358,7 +6357,7 @@ void DisplayServerX11::_create_xic(WindowData &wd) { } } -DisplayServerX11::WindowID DisplayServerX11::_create_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, Window p_parent_window) { +DisplayServerEnums::WindowID DisplayServerX11::_create_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, Window p_parent_window) { //Create window XVisualInfo visualInfo; @@ -6368,19 +6367,19 @@ DisplayServerX11::WindowID DisplayServerX11::_create_window(WindowMode p_mode, V if (gl_manager) { Error err; visualInfo = gl_manager->get_vi(x11_display, err); - ERR_FAIL_COND_V_MSG(err != OK, INVALID_WINDOW_ID, "Can't acquire visual info from display."); + ERR_FAIL_COND_V_MSG(err != OK, DisplayServerEnums::INVALID_WINDOW_ID, "Can't acquire visual info from display."); vi_selected = true; } if (gl_manager_egl) { XVisualInfo visual_info_template; int visual_id = gl_manager_egl->display_get_native_visual_id(x11_display); - ERR_FAIL_COND_V_MSG(visual_id < 0, INVALID_WINDOW_ID, "Unable to get a visual id."); + ERR_FAIL_COND_V_MSG(visual_id < 0, DisplayServerEnums::INVALID_WINDOW_ID, "Unable to get a visual id."); visual_info_template.visualid = (VisualID)visual_id; int number_of_visuals = 0; XVisualInfo *vi_list = XGetVisualInfo(x11_display, VisualIDMask, &visual_info_template, &number_of_visuals); - ERR_FAIL_COND_V(number_of_visuals <= 0, INVALID_WINDOW_ID); + ERR_FAIL_COND_V(number_of_visuals <= 0, DisplayServerEnums::INVALID_WINDOW_ID); visualInfo = vi_list[0]; @@ -6394,7 +6393,7 @@ DisplayServerX11::WindowID DisplayServerX11::_create_window(WindowMode p_mode, V XVisualInfo vInfoTemplate = {}; vInfoTemplate.screen = DefaultScreen(x11_display); XVisualInfo *vi_list = XGetVisualInfo(x11_display, visualMask, &vInfoTemplate, &numberOfVisuals); - ERR_FAIL_NULL_V(vi_list, INVALID_WINDOW_ID); + ERR_FAIL_NULL_V(vi_list, DisplayServerEnums::INVALID_WINDOW_ID); visualInfo = vi_list[0]; if (OS::get_singleton()->is_layered_allowed()) { @@ -6429,14 +6428,14 @@ DisplayServerX11::WindowID DisplayServerX11::_create_window(WindowMode p_mode, V valuemask |= CWBackPixel; } - WindowID id = window_id_counter++; + DisplayServerEnums::WindowID id = window_id_counter++; WindowData &wd = windows[id]; - if (p_flags & WINDOW_FLAG_NO_FOCUS_BIT) { + if (p_flags & DisplayServerEnums::WINDOW_FLAG_NO_FOCUS_BIT) { wd.no_focus = true; } - if (p_flags & WINDOW_FLAG_POPUP_BIT) { + if (p_flags & DisplayServerEnums::WINDOW_FLAG_POPUP_BIT) { wd.is_popup = true; } @@ -6459,7 +6458,7 @@ DisplayServerX11::WindowID DisplayServerX11::_create_window(WindowMode p_mode, V Rect2i win_rect = p_rect; if (!p_parent_window) { // No parent. - if (p_mode == WINDOW_MODE_FULLSCREEN || p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN || p_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { Rect2i screen_rect = Rect2i(screen_get_position(rq_screen), screen_get_size(rq_screen)); win_rect = screen_rect; @@ -6606,7 +6605,7 @@ DisplayServerX11::WindowID DisplayServerX11::_create_window(WindowMode p_mode, V } #endif Error err = rendering_context->window_create(id, &wpd); - ERR_FAIL_COND_V_MSG(err != OK, INVALID_WINDOW_ID, vformat("Can't create a %s window", rendering_driver)); + ERR_FAIL_COND_V_MSG(err != OK, DisplayServerEnums::INVALID_WINDOW_ID, vformat("Can't create a %s window", rendering_driver)); rendering_context->window_set_size(id, win_rect.size.width, win_rect.size.height); rendering_context->window_set_vsync_mode(id, p_vsync_mode); @@ -6615,11 +6614,11 @@ DisplayServerX11::WindowID DisplayServerX11::_create_window(WindowMode p_mode, V #ifdef GLES3_ENABLED if (gl_manager) { Error err = gl_manager->window_create(id, wd.x11_window, x11_display, win_rect.size.width, win_rect.size.height); - ERR_FAIL_COND_V_MSG(err != OK, INVALID_WINDOW_ID, "Can't create an OpenGL window"); + ERR_FAIL_COND_V_MSG(err != OK, DisplayServerEnums::INVALID_WINDOW_ID, "Can't create an OpenGL window"); } if (gl_manager_egl) { Error err = gl_manager_egl->window_create(id, x11_display, &wd.x11_window, win_rect.size.width, win_rect.size.height); - ERR_FAIL_COND_V_MSG(err != OK, INVALID_WINDOW_ID, "Failed to create an OpenGLES window."); + ERR_FAIL_COND_V_MSG(err != OK, DisplayServerEnums::INVALID_WINDOW_ID, "Failed to create an OpenGLES window."); } window_set_vsync_mode(p_vsync_mode, id); #endif @@ -6754,12 +6753,12 @@ void DisplayServerX11::_xim_instantiate_callback(::Display *display, ::XPointer } // The input method has been (re)started. - for (KeyValue &E : ds->windows) { + for (KeyValue &E : ds->windows) { ds->_create_xic(E.value); } } -DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { KeyMappingX11::initialize(); String current_desk = OS::get_singleton()->get_environment("XDG_CURRENT_DESKTOP").to_lower(); @@ -6864,7 +6863,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode } #endif - for (int i = 0; i < CURSOR_MAX; i++) { + for (int i = 0; i < DisplayServerEnums::CURSOR_MAX; i++) { cursors[i] = None; cursor_img[i] = nullptr; } @@ -7186,28 +7185,28 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode if (p_position != nullptr) { window_position = *p_position; } else { - if (p_screen == SCREEN_OF_MAIN_WINDOW) { - p_screen = SCREEN_PRIMARY; + if (p_screen == DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) { + p_screen = DisplayServerEnums::SCREEN_PRIMARY; } Rect2i scr_rect = screen_get_usable_rect(p_screen); window_position = scr_rect.position + (scr_rect.size - p_resolution) / 2; } - WindowID main_window = _create_window(p_mode, p_vsync_mode, p_flags, Rect2i(window_position, p_resolution), p_parent_window); - if (main_window == INVALID_WINDOW_ID) { + DisplayServerEnums::WindowID main_window = _create_window(p_mode, p_vsync_mode, p_flags, Rect2i(window_position, p_resolution), p_parent_window); + if (main_window == DisplayServerEnums::INVALID_WINDOW_ID) { r_error = ERR_CANT_CREATE; return; } - for (int i = 0; i < WINDOW_FLAG_MAX; i++) { + for (int i = 0; i < DisplayServerEnums::WINDOW_FLAG_MAX; i++) { if (p_flags & (1 << i)) { - window_set_flag(WindowFlags(i), true, main_window); + window_set_flag(DisplayServerEnums::WindowFlags(i), true, main_window); } } #if defined(RD_ENABLED) if (rendering_context) { rendering_device = memnew(RenderingDevice); - if (rendering_device->initialize(rendering_context, MAIN_WINDOW_ID) != OK) { + if (rendering_device->initialize(rendering_context, DisplayServerEnums::MAIN_WINDOW_ID) != OK) { memdelete(rendering_device); rendering_device = nullptr; memdelete(rendering_context); @@ -7215,7 +7214,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode r_error = ERR_UNAVAILABLE; return; } - rendering_device->screen_create(MAIN_WINDOW_ID); + rendering_device->screen_create(DisplayServerEnums::MAIN_WINDOW_ID); RendererCompositorRD::make_current(); } @@ -7241,7 +7240,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode cursor_theme = "default"; } - for (int i = 0; i < CURSOR_MAX; i++) { + for (int i = 0; i < DisplayServerEnums::CURSOR_MAX; i++) { static const char *cursor_file[] = { "left_ptr", "xterm", @@ -7267,49 +7266,49 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode const char *fallback = nullptr; switch (i) { - case CURSOR_POINTING_HAND: + case DisplayServerEnums::CURSOR_POINTING_HAND: fallback = "pointer"; break; - case CURSOR_CROSS: + case DisplayServerEnums::CURSOR_CROSS: fallback = "crosshair"; break; - case CURSOR_WAIT: + case DisplayServerEnums::CURSOR_WAIT: fallback = "wait"; break; - case CURSOR_BUSY: + case DisplayServerEnums::CURSOR_BUSY: fallback = "progress"; break; - case CURSOR_DRAG: + case DisplayServerEnums::CURSOR_DRAG: fallback = "grabbing"; break; - case CURSOR_CAN_DROP: + case DisplayServerEnums::CURSOR_CAN_DROP: fallback = "hand1"; break; - case CURSOR_FORBIDDEN: + case DisplayServerEnums::CURSOR_FORBIDDEN: fallback = "forbidden"; break; - case CURSOR_VSIZE: + case DisplayServerEnums::CURSOR_VSIZE: fallback = "ns-resize"; break; - case CURSOR_HSIZE: + case DisplayServerEnums::CURSOR_HSIZE: fallback = "ew-resize"; break; - case CURSOR_BDIAGSIZE: + case DisplayServerEnums::CURSOR_BDIAGSIZE: fallback = "fd_double_arrow"; break; - case CURSOR_FDIAGSIZE: + case DisplayServerEnums::CURSOR_FDIAGSIZE: fallback = "bd_double_arrow"; break; - case CURSOR_MOVE: - cursor_img[i] = cursor_img[CURSOR_DRAG]; + case DisplayServerEnums::CURSOR_MOVE: + cursor_img[i] = cursor_img[DisplayServerEnums::CURSOR_DRAG]; break; - case CURSOR_VSPLIT: + case DisplayServerEnums::CURSOR_VSPLIT: fallback = "sb_v_double_arrow"; break; - case CURSOR_HSPLIT: + case DisplayServerEnums::CURSOR_HSPLIT: fallback = "sb_h_double_arrow"; break; - case CURSOR_HELP: + case DisplayServerEnums::CURSOR_HELP: fallback = "help"; break; } @@ -7354,7 +7353,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode null_cursor = cursor; } - cursor_set_shape(CURSOR_BUSY); + cursor_set_shape(DisplayServerEnums::CURSOR_BUSY); // Search the X11 event queue for ConfigureNotify events and process all // that are currently queued early, so we can get the final window size @@ -7365,7 +7364,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode } events_thread.start(_poll_events_thread, this); - _update_real_mouse_position(windows[MAIN_WINDOW_ID]); + _update_real_mouse_position(windows[DisplayServerEnums::MAIN_WINDOW_ID]); #ifdef DBUS_ENABLED bool dbus_ok = true; @@ -7404,7 +7403,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode DisplayServerX11::~DisplayServerX11() { // Send owned clipboard data to clipboard manager before exit. - Window x11_main_window = windows[MAIN_WINDOW_ID].x11_window; + Window x11_main_window = windows[DisplayServerEnums::MAIN_WINDOW_ID].x11_window; _clipboard_transfer_ownership(XA_PRIMARY, x11_main_window); _clipboard_transfer_ownership(XInternAtom(x11_display, "CLIPBOARD", 0), x11_main_window); @@ -7417,7 +7416,7 @@ DisplayServerX11::~DisplayServerX11() { } //destroy all windows - for (KeyValue &E : windows) { + for (KeyValue &E : windows) { #if defined(RD_ENABLED) if (rendering_device) { rendering_device->screen_free(E.key); @@ -7495,7 +7494,7 @@ DisplayServerX11::~DisplayServerX11() { dlclose(xrandr_handle); } - for (int i = 0; i < CURSOR_MAX; i++) { + for (int i = 0; i < DisplayServerEnums::CURSOR_MAX; i++) { if (cursors[i] != None) { XFreeCursor(x11_display, cursors[i]); } diff --git a/platform/linuxbsd/x11/display_server_x11.h b/platform/linuxbsd/x11/display_server_x11.h index 42b0f843a477..9c8381d49f74 100644 --- a/platform/linuxbsd/x11/display_server_x11.h +++ b/platform/linuxbsd/x11/display_server_x11.h @@ -165,15 +165,15 @@ class DisplayServerX11 : public DisplayServer { Vector mpath; - WindowID transient_parent = INVALID_WINDOW_ID; - HashSet transient_children; + DisplayServerEnums::WindowID transient_parent = DisplayServerEnums::INVALID_WINDOW_ID; + HashSet transient_children; ObjectID instance_id; bool no_focus = false; //better to guess on the fly, given WM can change it - //WindowMode mode; + //DisplayServerEnums::WindowMode mode; bool fullscreen = false; //OS can't exit from this mode bool exclusive_fullscreen = false; bool on_top = false; @@ -205,19 +205,19 @@ class DisplayServerX11 : public DisplayServer { xkb_compose_table *dead_tbl = nullptr; #endif - HashMap windows; + HashMap windows; unsigned int last_mouse_monitor_mask = 0; uint64_t time_since_popup = 0; - List popup_list; + List popup_list; - WindowID window_mouseover_id = INVALID_WINDOW_ID; - WindowID last_focused_window = INVALID_WINDOW_ID; + DisplayServerEnums::WindowID window_mouseover_id = DisplayServerEnums::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID last_focused_window = DisplayServerEnums::INVALID_WINDOW_ID; - WindowID window_id_counter = MAIN_WINDOW_ID; + DisplayServerEnums::WindowID window_id_counter = DisplayServerEnums::MAIN_WINDOW_ID; void _create_xic(WindowData &wd); - WindowID _create_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, Window p_parent_window); + DisplayServerEnums::WindowID _create_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, Window p_parent_window); String internal_clipboard; String internal_clipboard_primary; @@ -279,19 +279,19 @@ class DisplayServerX11 : public DisplayServer { void _get_key_modifier_state(unsigned int p_x11_state, Ref state); void _flush_mouse_motion(); - MouseMode mouse_mode = MOUSE_MODE_VISIBLE; - MouseMode mouse_mode_base = MOUSE_MODE_VISIBLE; - MouseMode mouse_mode_override = MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode = DisplayServerEnums::MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode_base = DisplayServerEnums::MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode_override = DisplayServerEnums::MOUSE_MODE_VISIBLE; bool mouse_mode_override_enabled = false; void _mouse_update_mode(); Point2i center; - void _handle_key_event(WindowID p_window, XKeyEvent *p_event, LocalVector &p_events, uint32_t &p_event_index, bool p_echo = false); + void _handle_key_event(DisplayServerEnums::WindowID p_window, XKeyEvent *p_event, LocalVector &p_events, uint32_t &p_event_index, bool p_echo = false); Atom _process_selection_request_target(Atom p_target, Window p_requestor, Atom p_property, Atom p_selection) const; void _handle_selection_request_event(XSelectionRequestEvent *p_event) const; - void _update_window_mouse_passthrough(WindowID p_window); + void _update_window_mouse_passthrough(DisplayServerEnums::WindowID p_window); String _clipboard_get_impl(Atom p_source, Window x11_window, Atom target) const; String _clipboard_get(Atom p_source, Window x11_window) const; @@ -302,11 +302,11 @@ class DisplayServerX11 : public DisplayServer { const char *cursor_theme = nullptr; int cursor_size = 0; - XcursorImage *cursor_img[CURSOR_MAX]; - Cursor cursors[CURSOR_MAX]; + XcursorImage *cursor_img[DisplayServerEnums::CURSOR_MAX]; + Cursor cursors[DisplayServerEnums::CURSOR_MAX]; Cursor null_cursor; - CursorShape current_cursor = CURSOR_ARROW; - HashMap> cursors_cache; + DisplayServerEnums::CursorShape current_cursor = DisplayServerEnums::CURSOR_ARROW; + HashMap> cursors_cache; String rendering_driver; void set_wm_fullscreen(bool p_enabled); @@ -331,26 +331,26 @@ class DisplayServerX11 : public DisplayServer { static Property _read_property(Display *p_display, Window p_window, Atom p_property); void _update_real_mouse_position(const WindowData &wd); - bool _window_maximize_check(WindowID p_window, const char *p_atom_name) const; - bool _window_fullscreen_check(WindowID p_window) const; - bool _window_minimize_check(WindowID p_window) const; - void _validate_fullscreen_on_map(WindowID p_window); - void _update_size_hints(WindowID p_window); - void _update_motif_wm_hints(WindowID p_window); - void _update_wm_state_hints(WindowID p_window); - void _set_wm_fullscreen(WindowID p_window, bool p_enabled, bool p_exclusive); - void _set_wm_maximized(WindowID p_window, bool p_enabled); - void _set_wm_minimized(WindowID p_window, bool p_enabled); + bool _window_maximize_check(DisplayServerEnums::WindowID p_window, const char *p_atom_name) const; + bool _window_fullscreen_check(DisplayServerEnums::WindowID p_window) const; + bool _window_minimize_check(DisplayServerEnums::WindowID p_window) const; + void _validate_fullscreen_on_map(DisplayServerEnums::WindowID p_window); + void _update_size_hints(DisplayServerEnums::WindowID p_window); + void _update_motif_wm_hints(DisplayServerEnums::WindowID p_window); + void _update_wm_state_hints(DisplayServerEnums::WindowID p_window); + void _set_wm_fullscreen(DisplayServerEnums::WindowID p_window, bool p_enabled, bool p_exclusive); + void _set_wm_maximized(DisplayServerEnums::WindowID p_window, bool p_enabled); + void _set_wm_minimized(DisplayServerEnums::WindowID p_window, bool p_enabled); void _update_context(WindowData &wd); - Context context = CONTEXT_ENGINE; + DisplayServerEnums::Context context = DisplayServerEnums::CONTEXT_ENGINE; bool swap_cancel_ok = false; - WindowID _get_focused_window_or_popup() const; + DisplayServerEnums::WindowID _get_focused_window_or_popup() const; bool _window_focus_check(); - void _send_window_event(const WindowData &wd, WindowEvent p_event); + void _send_window_event(const WindowData &wd, DisplayServerEnums::WindowEvent p_event); static void _dispatch_input_events(const Ref &p_event); void _dispatch_input_event(const Ref &p_event); void _set_input_focus(Window p_window, int p_revert_to); @@ -377,7 +377,7 @@ class DisplayServerX11 : public DisplayServer { Point2i _get_window_position(Window p_window) const; Rect2i _get_window_rect(Window p_window) const; - void _set_external_window_settings(Window p_window, Window p_parent_transient, WindowMode p_mode, uint32_t p_flags, const Rect2i &p_rect); + void _set_external_window_settings(Window p_window, Window p_parent_transient, DisplayServerEnums::WindowMode p_mode, uint32_t p_flags, const Rect2i &p_rect); void _set_window_taskbar_pager_enabled(Window p_window, bool p_enabled); Rect2i _screens_get_full_rect() const; @@ -388,10 +388,10 @@ class DisplayServerX11 : public DisplayServer { public: bool mouse_process_popups(); - void popup_open(WindowID p_window); - void popup_close(WindowID p_window); + void popup_open(DisplayServerEnums::WindowID p_window); + void popup_close(DisplayServerEnums::WindowID p_window); - virtual bool has_feature(Feature p_feature) const override; + virtual bool has_feature(DisplayServerEnums::Feature p_feature) const override; virtual String get_name() const override; #ifdef SPEECHD_ENABLED @@ -411,16 +411,16 @@ class DisplayServerX11 : public DisplayServer { virtual Color get_accent_color() const override; virtual void set_system_theme_change_callback(const Callable &p_callable) override; - virtual Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, WindowID p_window_id) override; - virtual Error file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, WindowID p_window_id) override; + virtual Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) override; + virtual Error file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) override; #endif virtual void beep() const override; - virtual void mouse_set_mode(MouseMode p_mode) override; - virtual MouseMode mouse_get_mode() const override; - virtual void mouse_set_mode_override(MouseMode p_mode) override; - virtual MouseMode mouse_get_mode_override() const override; + virtual void mouse_set_mode(DisplayServerEnums::MouseMode p_mode) override; + virtual DisplayServerEnums::MouseMode mouse_get_mode() const override; + virtual void mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) override; + virtual DisplayServerEnums::MouseMode mouse_get_mode_override() const override; virtual void mouse_set_mode_override_enabled(bool p_override_enabled) override; virtual bool mouse_is_mode_override_enabled() const override; @@ -438,86 +438,86 @@ class DisplayServerX11 : public DisplayServer { virtual int get_screen_count() const override; virtual int get_primary_screen() const override; virtual int get_keyboard_focus_screen() const override; - virtual Point2i screen_get_position(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Size2i screen_get_size(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Rect2i screen_get_usable_rect(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual int screen_get_dpi(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_refresh_rate(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual Point2i screen_get_position(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Size2i screen_get_size(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Rect2i screen_get_usable_rect(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual int screen_get_dpi(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_refresh_rate(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; virtual Color screen_get_pixel(const Point2i &p_position) const override; - virtual Ref screen_get_image(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual Ref screen_get_image(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; #if defined(DBUS_ENABLED) virtual void screen_set_keep_on(bool p_enable) override; virtual bool screen_is_kept_on() const override; #endif - virtual Vector get_window_list() const override; + virtual Vector get_window_list() const override; - virtual WindowID create_sub_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect = Rect2i(), bool p_exclusive = false, WindowID p_transient_parent = INVALID_WINDOW_ID) override; - virtual void show_window(WindowID p_id) override; - virtual void delete_sub_window(WindowID p_id) override; + virtual DisplayServerEnums::WindowID create_sub_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect = Rect2i(), bool p_exclusive = false, DisplayServerEnums::WindowID p_transient_parent = DisplayServerEnums::INVALID_WINDOW_ID) override; + virtual void show_window(DisplayServerEnums::WindowID p_id) override; + virtual void delete_sub_window(DisplayServerEnums::WindowID p_id) override; - virtual WindowID window_get_active_popup() const override; - virtual void window_set_popup_safe_rect(WindowID p_window, const Rect2i &p_rect) override; - virtual Rect2i window_get_popup_safe_rect(WindowID p_window) const override; + virtual DisplayServerEnums::WindowID window_get_active_popup() const override; + virtual void window_set_popup_safe_rect(DisplayServerEnums::WindowID p_window, const Rect2i &p_rect) override; + virtual Rect2i window_get_popup_safe_rect(DisplayServerEnums::WindowID p_window) const override; - virtual WindowID get_window_at_screen_position(const Point2i &p_position) const override; + virtual DisplayServerEnums::WindowID get_window_at_screen_position(const Point2i &p_position) const override; - virtual int64_t window_get_native_handle(HandleType p_handle_type, WindowID p_window = MAIN_WINDOW_ID) const override; + virtual int64_t window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_attach_instance_id(ObjectID p_instance, WindowID p_window = MAIN_WINDOW_ID) override; - virtual ObjectID window_get_attached_instance_id(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual ObjectID window_get_attached_instance_id(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_title(const String &p_title, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_mouse_passthrough(const Vector &p_region, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_mouse_passthrough(const Vector &p_region, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_window_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_text_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_drop_files_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual int window_get_current_screen(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_current_screen(int p_screen, WindowID p_window = MAIN_WINDOW_ID) override; + virtual int window_get_current_screen(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual Point2i window_get_position(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Point2i window_get_position_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_position(const Point2i &p_position, WindowID p_window = MAIN_WINDOW_ID) override; + virtual Point2i window_get_position(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Point2i window_get_position_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_max_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_max_size(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void gl_window_make_current(DisplayServer::WindowID p_window_id) override; + virtual void window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_max_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void gl_window_make_current(DisplayServerEnums::WindowID p_window_id) override; - virtual void window_set_transient(WindowID p_window, WindowID p_parent) override; + virtual void window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) override; - virtual void window_set_min_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_min_size(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_min_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_size(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Size2i window_get_size_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Size2i window_get_size_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_mode(WindowMode p_mode, WindowID p_window = MAIN_WINDOW_ID) override; - virtual WindowMode window_get_mode(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::WindowMode window_get_mode(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual bool window_is_maximize_allowed(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_is_maximize_allowed(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_get_flag(WindowFlags p_flag, WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_request_attention(WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_request_attention(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_move_to_foreground(WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_is_focused(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_move_to_foreground(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_is_focused(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual WindowID get_focused_window() const override; + virtual DisplayServerEnums::WindowID get_focused_window() const override; - virtual bool window_can_draw(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_can_draw(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; virtual bool can_any_window_draw() const override; - virtual void window_set_ime_active(const bool p_active, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_ime_position(const Point2i &p_pos, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; virtual int accessibility_should_increase_contrast() const override; virtual int accessibility_screen_reader_active() const override; @@ -525,20 +525,20 @@ class DisplayServerX11 : public DisplayServer { virtual Point2i ime_get_selection() const override; virtual String ime_get_text() const override; - virtual void window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window = MAIN_WINDOW_ID) override; - virtual DisplayServer::VSyncMode window_get_vsync_mode(WindowID p_vsync_mode) const override; + virtual void window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::VSyncMode window_get_vsync_mode(DisplayServerEnums::WindowID p_vsync_mode) const override; - virtual void window_start_drag(WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_start_resize(WindowResizeEdge p_edge, WindowID p_window) override; + virtual void window_start_drag(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_start_resize(DisplayServerEnums::WindowResizeEdge p_edge, DisplayServerEnums::WindowID p_window) override; - virtual Error embed_process(WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) override; + virtual Error embed_process(DisplayServerEnums::WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) override; virtual Error request_close_embedded_process(OS::ProcessID p_pid) override; virtual Error remove_embedded_process(OS::ProcessID p_pid) override; virtual OS::ProcessID get_focused_process_id() override; - virtual void cursor_set_shape(CursorShape p_shape) override; - virtual CursorShape cursor_get_shape() const override; - virtual void cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) override; + virtual void cursor_set_shape(DisplayServerEnums::CursorShape p_shape) override; + virtual DisplayServerEnums::CursorShape cursor_get_shape() const override; + virtual void cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape, const Vector2 &p_hotspot) override; virtual bool get_swap_cancel_ok() override; @@ -557,19 +557,19 @@ class DisplayServerX11 : public DisplayServer { virtual void release_rendering_thread() override; virtual void swap_buffers() override; - virtual void set_context(Context p_context) override; + virtual void set_context(DisplayServerEnums::Context p_context) override; virtual bool is_window_transparency_available() const override; virtual void set_native_icon(const String &p_filename) override; virtual void set_icon(const Ref &p_icon) override; - static DisplayServer *create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + static DisplayServer *create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); static Vector get_rendering_drivers_func(); static void register_x11_driver(); - DisplayServerX11(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + DisplayServerX11(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); ~DisplayServerX11(); }; diff --git a/platform/linuxbsd/x11/gl_manager_x11.cpp b/platform/linuxbsd/x11/gl_manager_x11.cpp index cbcce3c73a4b..5f6ffffdc99e 100644 --- a/platform/linuxbsd/x11/gl_manager_x11.cpp +++ b/platform/linuxbsd/x11/gl_manager_x11.cpp @@ -32,6 +32,8 @@ #if defined(X11_ENABLED) && defined(GLES3_ENABLED) +#include "servers/display/display_server.h" + #include "thirdparty/glad/glad/glx.h" #include @@ -222,7 +224,7 @@ Error GLManager_X11::open_display(Display *p_display) { } } -Error GLManager_X11::window_create(DisplayServer::WindowID p_window_id, ::Window p_window, Display *p_display, int p_width, int p_height) { +Error GLManager_X11::window_create(DisplayServerEnums::WindowID p_window_id, ::Window p_window, Display *p_display, int p_width, int p_height) { // make sure vector is big enough... // we can mirror the external vector, it is simpler // to keep the IDs identical for fast lookup @@ -265,12 +267,12 @@ void GLManager_X11::_internal_set_current_window(GLWindow *p_win) { _x_windisp.x11_display = disp.x11_display; } -void GLManager_X11::window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height) { +void GLManager_X11::window_resize(DisplayServerEnums::WindowID p_window_id, int p_width, int p_height) { get_window(p_window_id).width = p_width; get_window(p_window_id).height = p_height; } -void GLManager_X11::window_destroy(DisplayServer::WindowID p_window_id) { +void GLManager_X11::window_destroy(DisplayServerEnums::WindowID p_window_id) { GLWindow &win = get_window(p_window_id); win.in_use = false; @@ -292,7 +294,7 @@ void GLManager_X11::release_current() { _current_window = nullptr; } -void GLManager_X11::window_make_current(DisplayServer::WindowID p_window_id) { +void GLManager_X11::window_make_current(DisplayServerEnums::WindowID p_window_id) { if (p_window_id == -1) { return; } @@ -327,7 +329,7 @@ void GLManager_X11::swap_buffers() { // On X11, when enabled, transparency is always active, so clear alpha manually. if (OS::get_singleton()->is_layered_allowed()) { - if (!DisplayServer::get_singleton()->window_get_flag(DisplayServer::WINDOW_FLAG_TRANSPARENT, _current_window->window_id)) { + if (!DisplayServer::get_singleton()->window_get_flag(DisplayServerEnums::WINDOW_FLAG_TRANSPARENT, _current_window->window_id)) { glColorMask(false, false, false, true); glClearColor(0, 0, 0, 1); glClear(GL_COLOR_BUFFER_BIT); @@ -372,7 +374,7 @@ bool GLManager_X11::is_using_vsync() const { return use_vsync; } -void *GLManager_X11::get_glx_context(DisplayServer::WindowID p_window_id) { +void *GLManager_X11::get_glx_context(DisplayServerEnums::WindowID p_window_id) { if (p_window_id == -1) { return nullptr; } @@ -383,7 +385,7 @@ void *GLManager_X11::get_glx_context(DisplayServer::WindowID p_window_id) { return (void *)disp.context->glx_context; } -VisualID GLManager_X11::get_glx_visualid(DisplayServer::WindowID p_window_id) { +VisualID GLManager_X11::get_glx_visualid(DisplayServerEnums::WindowID p_window_id) { if (p_window_id == -1) { return (VisualID)0; } @@ -394,7 +396,7 @@ VisualID GLManager_X11::get_glx_visualid(DisplayServer::WindowID p_window_id) { return disp.x_vi.visualid; } -void *GLManager_X11::get_glx_fbconfig(DisplayServer::WindowID p_window_id) { +void *GLManager_X11::get_glx_fbconfig(DisplayServerEnums::WindowID p_window_id) { if (p_window_id == -1) { return nullptr; } diff --git a/platform/linuxbsd/x11/gl_manager_x11.h b/platform/linuxbsd/x11/gl_manager_x11.h index 01598a38ca46..1a5d5cf5586a 100644 --- a/platform/linuxbsd/x11/gl_manager_x11.h +++ b/platform/linuxbsd/x11/gl_manager_x11.h @@ -34,7 +34,7 @@ #include "core/os/os.h" #include "core/templates/local_vector.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #ifdef SOWRAP_ENABLED #include "dynwrappers/xlib-so_wrap.h" @@ -65,7 +65,7 @@ class GLManager_X11 { bool in_use = false; // the external ID .. should match the GL window number .. unused I think - DisplayServer::WindowID window_id = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID window_id = DisplayServerEnums::INVALID_WINDOW_ID; int width = 0; int height = 0; ::Window x11_window; @@ -112,23 +112,23 @@ class GLManager_X11 { public: XVisualInfo get_vi(Display *p_display, Error &r_error); - Error window_create(DisplayServer::WindowID p_window_id, ::Window p_window, Display *p_display, int p_width, int p_height); - void window_destroy(DisplayServer::WindowID p_window_id); - void window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height); + Error window_create(DisplayServerEnums::WindowID p_window_id, ::Window p_window, Display *p_display, int p_width, int p_height); + void window_destroy(DisplayServerEnums::WindowID p_window_id); + void window_resize(DisplayServerEnums::WindowID p_window_id, int p_width, int p_height); void release_current(); void swap_buffers(); - void window_make_current(DisplayServer::WindowID p_window_id); + void window_make_current(DisplayServerEnums::WindowID p_window_id); Error initialize(Display *p_display); void set_use_vsync(bool p_use); bool is_using_vsync() const; - void *get_glx_context(DisplayServer::WindowID p_window_id); - void *get_glx_fbconfig(DisplayServer::WindowID p_window_id); - VisualID get_glx_visualid(DisplayServer::WindowID p_window_id); + void *get_glx_context(DisplayServerEnums::WindowID p_window_id); + void *get_glx_fbconfig(DisplayServerEnums::WindowID p_window_id); + VisualID get_glx_visualid(DisplayServerEnums::WindowID p_window_id); Error open_display(Display *p_display); GLManager_X11(const Vector2i &p_size, ContextType p_context_type); diff --git a/platform/linuxbsd/x11/gl_manager_x11_egl.h b/platform/linuxbsd/x11/gl_manager_x11_egl.h index 43d89ab1acbf..2c7d9001b5a4 100644 --- a/platform/linuxbsd/x11/gl_manager_x11_egl.h +++ b/platform/linuxbsd/x11/gl_manager_x11_egl.h @@ -35,7 +35,7 @@ #include "core/os/os.h" #include "core/templates/local_vector.h" #include "drivers/egl/egl_manager.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #include @@ -48,7 +48,7 @@ class GLManagerEGL_X11 : public EGLManager { virtual Vector _get_platform_context_attribs() const override; public: - void window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height) {} + void window_resize(DisplayServerEnums::WindowID p_window_id, int p_width, int p_height) {} GLManagerEGL_X11() {} ~GLManagerEGL_X11() {} diff --git a/platform/macos/display_server_macos.h b/platform/macos/display_server_macos.h index b0308583709f..bf2a1d3df68c 100644 --- a/platform/macos/display_server_macos.h +++ b/platform/macos/display_server_macos.h @@ -69,7 +69,6 @@ #endif #undef BitMap -#undef CursorShape #undef FontVariation #ifdef TOOLS_ENABLED @@ -85,7 +84,7 @@ class DisplayServerMacOS : public DisplayServerMacOSBase { public: struct KeyEvent { - WindowID window_id = INVALID_WINDOW_ID; + DisplayServerEnums::WindowID window_id = DisplayServerEnums::INVALID_WINDOW_ID; unsigned int macos_state = false; bool pressed = false; bool echo = false; @@ -108,7 +107,7 @@ class DisplayServerMacOS : public DisplayServerMacOSBase { CGDirectDisplayID display_id = -1; Point2i mouse_pos; - WindowResizeEdge edge = WINDOW_EDGE_MAX; + DisplayServerEnums::WindowResizeEdge edge = DisplayServerEnums::WINDOW_EDGE_MAX; Size2i min_size; Size2i max_size; @@ -131,9 +130,9 @@ class DisplayServerMacOS : public DisplayServerMacOSBase { bool fs_transition = false; bool initial_size = true; - WindowID transient_parent = INVALID_WINDOW_ID; + DisplayServerEnums::WindowID transient_parent = DisplayServerEnums::INVALID_WINDOW_ID; bool exclusive = false; - HashSet transient_children; + HashSet transient_children; bool layered_window = false; bool fullscreen = false; @@ -156,7 +155,7 @@ class DisplayServerMacOS : public DisplayServerMacOSBase { Rect2i parent_safe_rect; }; - List popup_list; + List popup_list; uint64_t time_since_popup = 0; GodotProgressView *dock_progress = nullptr; @@ -185,34 +184,34 @@ class DisplayServerMacOS : public DisplayServerMacOSBase { NativeMenuMacOS *native_menu = nullptr; CGEventSourceRef event_source; - void _mouse_apply_mode(MouseMode p_prev_mode, MouseMode p_new_mode) override; + void _mouse_apply_mode(DisplayServerEnums::MouseMode p_prev_mode, DisplayServerEnums::MouseMode p_new_mode) override; - HDROutput &_get_hdr_output(WindowID p_window) override; - const HDROutput &_get_hdr_output(WindowID p_window) const override; + HDROutput &_get_hdr_output(DisplayServerEnums::WindowID p_window) override; + const HDROutput &_get_hdr_output(DisplayServerEnums::WindowID p_window) const override; bool drop_events = false; bool in_dispatch_input_event = false; - WindowID window_mouseover_id = INVALID_WINDOW_ID; - WindowID last_focused_window = INVALID_WINDOW_ID; - WindowID window_id_counter = MAIN_WINDOW_ID; + DisplayServerEnums::WindowID window_mouseover_id = DisplayServerEnums::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID last_focused_window = DisplayServerEnums::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID window_id_counter = DisplayServerEnums::MAIN_WINDOW_ID; float display_max_scale = 1.f; mutable Point2i origin; mutable bool displays_arrangement_dirty = true; bool is_resizing = false; - NSCursor *cursors[CURSOR_MAX]; - HashMap> cursors_cache; + NSCursor *cursors[DisplayServerEnums::CURSOR_MAX]; + HashMap> cursors_cache; - HashMap windows; + HashMap windows; struct IndicatorData { id delegate; id item; }; - IndicatorID indicator_id_counter = 0; - HashMap indicators; + DisplayServerEnums::IndicatorID indicator_id_counter = 0; + HashMap indicators; Callable help_search_callback; Callable help_action_callback; @@ -223,8 +222,8 @@ class DisplayServerMacOS : public DisplayServerMacOSBase { }; List deferred_menu_calls; - WindowID _create_window(WindowMode p_mode, VSyncMode p_vsync_mode, const Rect2i &p_rect); - void _update_window_style(WindowData p_wd, WindowID p_window); + DisplayServerEnums::WindowID _create_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, const Rect2i &p_rect); + void _update_window_style(WindowData p_wd, DisplayServerEnums::WindowID p_window); void _update_displays_arrangement() const; Point2i _get_native_screen_position(int p_screen) const; @@ -237,7 +236,7 @@ class DisplayServerMacOS : public DisplayServerMacOSBase { static NSCursor *_cursor_from_selector(SEL p_selector, SEL p_fallback = nil); - Error _file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, bool p_options_in_cb, WindowID p_window_id); + Error _file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, bool p_options_in_cb, DisplayServerEnums::WindowID p_window_id); #ifdef TOOLS_ENABLED struct EmbeddedProcessData { @@ -252,8 +251,8 @@ class DisplayServerMacOS : public DisplayServerMacOSBase { public: void menu_callback(id p_sender); - bool has_window(WindowID p_window) const; - WindowData &get_window(WindowID p_window); + bool has_window(DisplayServerEnums::WindowID p_window) const; + WindowData &get_window(DisplayServerEnums::WindowID p_window); NSImage *_convert_to_nsimg(Ref &p_image) const; Point2i _get_screens_origin() const; @@ -261,37 +260,37 @@ class DisplayServerMacOS : public DisplayServerMacOSBase { void set_menu_delegate(NSMenu *p_menu); void send_event(NSEvent *p_event); - void send_window_event(const WindowData &p_wd, WindowEvent p_event); + void send_window_event(const WindowData &p_wd, DisplayServerEnums::WindowEvent p_event); void release_pressed_events(); void sync_mouse_state(); void get_key_modifier_state(unsigned int p_macos_state, Ref r_state) const; void update_mouse_pos(WindowData &p_wd, NSPoint p_location_in_window); void push_to_key_event_buffer(const KeyEvent &p_event); void pop_last_key_event(); - void set_last_focused_window(WindowID p_window); + void set_last_focused_window(DisplayServerEnums::WindowID p_window); bool mouse_process_popups(bool p_close = false); - void popup_open(WindowID p_window); - void popup_close(WindowID p_window); + void popup_open(DisplayServerEnums::WindowID p_window); + void popup_close(DisplayServerEnums::WindowID p_window); void set_is_resizing(bool p_is_resizing); bool get_is_resizing() const; - void reparent_check(WindowID p_window); - WindowID _get_focused_window_or_popup() const; - void mouse_enter_window(WindowID p_window); - void mouse_exit_window(WindowID p_window); + void reparent_check(DisplayServerEnums::WindowID p_window); + DisplayServerEnums::WindowID _get_focused_window_or_popup() const; + void mouse_enter_window(DisplayServerEnums::WindowID p_window); + void mouse_exit_window(DisplayServerEnums::WindowID p_window); void update_presentation_mode(); - bool is_always_on_top_recursive(WindowID p_window) const; + bool is_always_on_top_recursive(DisplayServerEnums::WindowID p_window) const; /** * Get the display ID of a window. */ - uint32_t window_get_display_id(WindowID p_window) const; - void window_destroy(WindowID p_window); - void window_resize(WindowID p_window, int p_width, int p_height); + uint32_t window_get_display_id(DisplayServerEnums::WindowID p_window) const; + void window_destroy(DisplayServerEnums::WindowID p_window); + void window_resize(DisplayServerEnums::WindowID p_window, int p_width, int p_height); void window_set_custom_window_buttons(WindowData &p_wd, bool p_enabled); - void set_window_per_pixel_transparency_enabled(bool p_enabled, WindowID p_window); + void set_window_per_pixel_transparency_enabled(bool p_enabled, DisplayServerEnums::WindowID p_window); - virtual bool has_feature(Feature p_feature) const override; + virtual bool has_feature(DisplayServerEnums::Feature p_feature) const override; virtual String get_name() const override; virtual void help_set_search_callbacks(const Callable &p_search_callback = Callable(), const Callable &p_action_callback = Callable()) override; @@ -301,8 +300,8 @@ class DisplayServerMacOS : public DisplayServerMacOSBase { virtual Error dialog_show(String p_title, String p_description, Vector p_buttons, const Callable &p_callback) override; virtual Error dialog_input_text(String p_title, String p_description, String p_partial, const Callable &p_callback) override; - virtual Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, WindowID p_window_id) override; - virtual Error file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, WindowID p_window_id) override; + virtual Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) override; + virtual Error file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) override; bool update_mouse_wrap(WindowData &p_wd, NSPoint &r_delta, NSPoint &r_mpos, NSTimeInterval p_timestamp); virtual void warp_mouse(const Point2i &p_position) override; @@ -311,88 +310,88 @@ class DisplayServerMacOS : public DisplayServerMacOSBase { virtual int get_screen_count() const override; virtual int get_keyboard_focus_screen() const override; - virtual Point2i screen_get_position(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Size2i screen_get_size(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual int screen_get_dpi(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_scale(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual Point2i screen_get_position(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Size2i screen_get_size(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual int screen_get_dpi(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_scale(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; virtual float screen_get_max_scale() const override; - virtual Rect2i screen_get_usable_rect(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual Rect2i screen_get_usable_rect(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; virtual Color screen_get_pixel(const Point2i &p_position) const override; - virtual Ref screen_get_image(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual Ref screen_get_image(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; virtual Ref screen_get_image_rect(const Rect2i &p_rect) const override; virtual Vector get_window_list() const override; - virtual WindowID create_sub_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect = Rect2i(), bool p_exclusive = false, WindowID p_transient_parent = INVALID_WINDOW_ID) override; - virtual void show_window(WindowID p_id) override; - virtual void delete_sub_window(WindowID p_id) override; + virtual DisplayServerEnums::WindowID create_sub_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect = Rect2i(), bool p_exclusive = false, DisplayServerEnums::WindowID p_transient_parent = DisplayServerEnums::INVALID_WINDOW_ID) override; + virtual void show_window(DisplayServerEnums::WindowID p_id) override; + virtual void delete_sub_window(DisplayServerEnums::WindowID p_id) override; - virtual WindowID window_get_active_popup() const override; - virtual void window_set_popup_safe_rect(WindowID p_window, const Rect2i &p_rect) override; - virtual Rect2i window_get_popup_safe_rect(WindowID p_window) const override; + virtual DisplayServerEnums::WindowID window_get_active_popup() const override; + virtual void window_set_popup_safe_rect(DisplayServerEnums::WindowID p_window, const Rect2i &p_rect) override; + virtual Rect2i window_get_popup_safe_rect(DisplayServerEnums::WindowID p_window) const override; - virtual void window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_window_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_text_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_drop_files_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_title(const String &p_title, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_title_size(const String &p_title, WindowID p_window) const override; - virtual void window_set_mouse_passthrough(const Vector &p_region, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_title_size(const String &p_title, DisplayServerEnums::WindowID p_window) const override; + virtual void window_set_mouse_passthrough(const Vector &p_region, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual int window_get_current_screen(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_current_screen(int p_screen, WindowID p_window = MAIN_WINDOW_ID) override; + virtual int window_get_current_screen(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual Point2i window_get_position(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Point2i window_get_position_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_position(const Point2i &p_position, WindowID p_window = MAIN_WINDOW_ID) override; + virtual Point2i window_get_position(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Point2i window_get_position_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_transient(WindowID p_window, WindowID p_parent) override; - virtual void window_set_exclusive(WindowID p_window, bool p_exclusive) override; + virtual void window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) override; + virtual void window_set_exclusive(DisplayServerEnums::WindowID p_window, bool p_exclusive) override; - virtual void window_set_max_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_max_size(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_max_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_min_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_min_size(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_min_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_size(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Size2i window_get_size_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Size2i window_get_size_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_mode(WindowMode p_mode, WindowID p_window = MAIN_WINDOW_ID) override; - virtual WindowMode window_get_mode(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::WindowMode window_get_mode(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual bool window_is_maximize_allowed(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_is_maximize_allowed(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_get_flag(WindowFlags p_flag, WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_request_attention(WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_taskbar_progress_value(float p_value, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_taskbar_progress_state(ProgressState p_state, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_move_to_foreground(WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_is_focused(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_request_attention(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_taskbar_progress_value(float p_value, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_taskbar_progress_state(DisplayServerEnums::ProgressState p_state, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_move_to_foreground(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_is_focused(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual WindowID get_focused_window() const override; + virtual DisplayServerEnums::WindowID get_focused_window() const override; - virtual bool window_can_draw(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_can_draw(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; virtual bool can_any_window_draw() const override; - virtual void window_set_ime_active(const bool p_active, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_ime_position(const Point2i &p_pos, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual WindowID get_window_at_screen_position(const Point2i &p_position) const override; + virtual DisplayServerEnums::WindowID get_window_at_screen_position(const Point2i &p_position) const override; - virtual int64_t window_get_native_handle(HandleType p_handle_type, WindowID p_window = MAIN_WINDOW_ID) const override; + virtual int64_t window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_attach_instance_id(ObjectID p_instance, WindowID p_window = MAIN_WINDOW_ID) override; - virtual ObjectID window_get_attached_instance_id(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void gl_window_make_current(DisplayServer::WindowID p_window_id) override; + virtual void window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual ObjectID window_get_attached_instance_id(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void gl_window_make_current(DisplayServerEnums::WindowID p_window_id) override; - virtual void window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window = MAIN_WINDOW_ID) override; - virtual DisplayServer::VSyncMode window_get_vsync_mode(WindowID p_vsync_mode) const override; + virtual void window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::VSyncMode window_get_vsync_mode(DisplayServerEnums::WindowID p_vsync_mode) const override; public: void update_screen_parameters(); @@ -400,21 +399,21 @@ class DisplayServerMacOS : public DisplayServerMacOSBase { virtual bool window_maximize_on_title_dbl_click() const override; virtual bool window_minimize_on_title_dbl_click() const override; - virtual void window_start_drag(WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_start_resize(WindowResizeEdge p_edge, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_start_drag(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_start_resize(DisplayServerEnums::WindowResizeEdge p_edge, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_window_buttons_offset(const Vector2i &p_offset, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Vector3i window_get_safe_title_margins(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_window_buttons_offset(const Vector2i &p_offset, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Vector3i window_get_safe_title_margins(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; void cursor_update_shape(); - virtual void cursor_set_shape(CursorShape p_shape) override; - virtual void cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape = CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()) override; + virtual void cursor_set_shape(DisplayServerEnums::CursorShape p_shape) override; + virtual void cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape = DisplayServerEnums::CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()) override; virtual bool get_swap_cancel_ok() override; virtual void enable_for_stealing_focus(OS::ProcessID pid) override; #ifdef TOOLS_ENABLED - Error embed_process_update(WindowID p_window, EmbeddedProcessMacOS *p_process); + Error embed_process_update(DisplayServerEnums::WindowID p_window, EmbeddedProcessMacOS *p_process); virtual Error request_close_embedded_process(OS::ProcessID p_pid) override; virtual Error remove_embedded_process(OS::ProcessID p_pid) override; #endif @@ -429,23 +428,23 @@ class DisplayServerMacOS : public DisplayServerMacOSBase { virtual void set_native_icon(const String &p_filename) override; virtual void set_icon(const Ref &p_icon) override; - virtual IndicatorID create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback) override; - virtual void status_indicator_set_icon(IndicatorID p_id, const Ref &p_icon) override; - virtual void status_indicator_set_tooltip(IndicatorID p_id, const String &p_tooltip) override; - virtual void status_indicator_set_menu(IndicatorID p_id, const RID &p_menu_rid) override; - virtual void status_indicator_set_callback(IndicatorID p_id, const Callable &p_callback) override; - virtual Rect2 status_indicator_get_rect(IndicatorID p_id) const override; - virtual void delete_status_indicator(IndicatorID p_id) override; + virtual DisplayServerEnums::IndicatorID create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback) override; + virtual void status_indicator_set_icon(DisplayServerEnums::IndicatorID p_id, const Ref &p_icon) override; + virtual void status_indicator_set_tooltip(DisplayServerEnums::IndicatorID p_id, const String &p_tooltip) override; + virtual void status_indicator_set_menu(DisplayServerEnums::IndicatorID p_id, const RID &p_menu_rid) override; + virtual void status_indicator_set_callback(DisplayServerEnums::IndicatorID p_id, const Callable &p_callback) override; + virtual Rect2 status_indicator_get_rect(DisplayServerEnums::IndicatorID p_id) const override; + virtual void delete_status_indicator(DisplayServerEnums::IndicatorID p_id) override; virtual bool is_window_transparency_available() const override; - void window_get_edr_values(WindowID p_window, CGFloat *r_max_potential_edr_value, CGFloat *r_max_edr_value) const override; + void window_get_edr_values(DisplayServerEnums::WindowID p_window, CGFloat *r_max_potential_edr_value, CGFloat *r_max_edr_value) const override; - static DisplayServer *create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + static DisplayServer *create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); static Vector get_rendering_drivers_func(); static void register_macos_driver(); - DisplayServerMacOS(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + DisplayServerMacOS(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); ~DisplayServerMacOS(); }; diff --git a/platform/macos/display_server_macos.mm b/platform/macos/display_server_macos.mm index 4f190665ecfb..9f0a9988ce14 100644 --- a/platform/macos/display_server_macos.mm +++ b/platform/macos/display_server_macos.mm @@ -86,15 +86,15 @@ #import #import -DisplayServerMacOS::WindowID DisplayServerMacOS::_create_window(WindowMode p_mode, VSyncMode p_vsync_mode, const Rect2i &p_rect) { +DisplayServerEnums::WindowID DisplayServerMacOS::_create_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, const Rect2i &p_rect) { const float scale = screen_get_max_scale(); - WindowID id = window_id_counter; + DisplayServerEnums::WindowID id = window_id_counter; { WindowData &wd = windows[id]; wd.window_delegate = [[GodotWindowDelegate alloc] initWithDisplayServer:this]; - ERR_FAIL_NULL_V_MSG(wd.window_delegate, INVALID_WINDOW_ID, "Can't create a window delegate"); + ERR_FAIL_NULL_V_MSG(wd.window_delegate, DisplayServerEnums::INVALID_WINDOW_ID, "Can't create a window delegate"); [wd.window_delegate setWindowID:id]; int rq_screen = get_screen_from_rect(p_rect); @@ -119,14 +119,14 @@ styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturizable | NSWindowStyleMaskResizable backing:NSBackingStoreBuffered defer:NO]; - ERR_FAIL_NULL_V_MSG(wd.window_object, INVALID_WINDOW_ID, "Can't create a window"); + ERR_FAIL_NULL_V_MSG(wd.window_object, DisplayServerEnums::INVALID_WINDOW_ID, "Can't create a window"); [wd.window_object setWindowID:id]; [wd.window_object setReleasedWhenClosed:NO]; wd.window_view = [[GodotContentView alloc] init]; if (wd.window_view == nil) { windows.erase(id); - ERR_FAIL_V_MSG(INVALID_WINDOW_ID, "Can't create a window view"); + ERR_FAIL_V_MSG(DisplayServerEnums::INVALID_WINDOW_ID, "Can't create a window view"); } [wd.window_view setWindowID:id]; [wd.window_view setWantsLayer:TRUE]; @@ -190,7 +190,7 @@ AccessibilityServer::get_singleton()->window_destroy(id); } - ERR_FAIL_COND_V_MSG(err != OK, INVALID_WINDOW_ID, vformat("Can't create a %s context", rendering_driver)); + ERR_FAIL_COND_V_MSG(err != OK, DisplayServerEnums::INVALID_WINDOW_ID, vformat("Can't create a %s context", rendering_driver)); rendering_context->window_set_size(window_id_counter, p_rect.size.width, p_rect.size.height); rendering_context->window_set_vsync_mode(window_id_counter, p_vsync_mode); @@ -215,7 +215,7 @@ AccessibilityServer::get_singleton()->window_destroy(id); windows.erase(id); - ERR_FAIL_V_MSG(INVALID_WINDOW_ID, "Can't create an OpenGL context."); + ERR_FAIL_V_MSG(DisplayServerEnums::INVALID_WINDOW_ID, "Can't create an OpenGL context."); } window_set_vsync_mode(p_vsync_mode, id); #endif @@ -256,7 +256,7 @@ return id; } -void DisplayServerMacOS::_update_window_style(WindowData p_wd, WindowID p_window) { +void DisplayServerMacOS::_update_window_style(WindowData p_wd, DisplayServerEnums::WindowID p_window) { bool borderless_full = false; if (p_wd.borderless) { @@ -285,7 +285,7 @@ } } -bool DisplayServerMacOS::is_always_on_top_recursive(WindowID p_window) const { +bool DisplayServerMacOS::is_always_on_top_recursive(DisplayServerEnums::WindowID p_window) const { ERR_FAIL_COND_V(!windows.has(p_window), false); const WindowData &wd = windows[p_window]; @@ -293,14 +293,14 @@ return true; } - if (wd.transient_parent != INVALID_WINDOW_ID) { + if (wd.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { return is_always_on_top_recursive(wd.transient_parent); } return false; } -void DisplayServerMacOS::set_window_per_pixel_transparency_enabled(bool p_enabled, WindowID p_window) { +void DisplayServerMacOS::set_window_per_pixel_transparency_enabled(bool p_enabled, DisplayServerEnums::WindowID p_window) { ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; @@ -401,8 +401,8 @@ } } -DisplayServer::WindowID DisplayServerMacOS::_get_focused_window_or_popup() const { - const List::Element *E = popup_list.back(); +DisplayServerEnums::WindowID DisplayServerMacOS::_get_focused_window_or_popup() const { + const List::Element *E = popup_list.back(); if (E) { return E->get(); } @@ -410,23 +410,23 @@ return last_focused_window; } -void DisplayServerMacOS::mouse_enter_window(WindowID p_window) { +void DisplayServerMacOS::mouse_enter_window(DisplayServerEnums::WindowID p_window) { if (window_mouseover_id != p_window) { - if (window_mouseover_id != INVALID_WINDOW_ID) { - send_window_event(windows[window_mouseover_id], WINDOW_EVENT_MOUSE_EXIT); + if (window_mouseover_id != DisplayServerEnums::INVALID_WINDOW_ID) { + send_window_event(windows[window_mouseover_id], DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT); } window_mouseover_id = p_window; - if (p_window != INVALID_WINDOW_ID) { - send_window_event(windows[p_window], WINDOW_EVENT_MOUSE_ENTER); + if (p_window != DisplayServerEnums::INVALID_WINDOW_ID) { + send_window_event(windows[p_window], DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER); } } } -void DisplayServerMacOS::mouse_exit_window(WindowID p_window) { - if (window_mouseover_id == p_window && p_window != INVALID_WINDOW_ID) { - send_window_event(windows[p_window], WINDOW_EVENT_MOUSE_EXIT); +void DisplayServerMacOS::mouse_exit_window(DisplayServerEnums::WindowID p_window) { + if (window_mouseover_id == p_window && p_window != DisplayServerEnums::INVALID_WINDOW_ID) { + send_window_event(windows[p_window], DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT); } - window_mouseover_id = INVALID_WINDOW_ID; + window_mouseover_id = DisplayServerEnums::INVALID_WINDOW_ID; } void DisplayServerMacOS::_dispatch_input_events(const Ref &p_event) { @@ -438,7 +438,7 @@ in_dispatch_input_event = true; { - List::Element *E = popup_list.back(); + List::Element *E = popup_list.back(); if (E && Object::cast_to(*p_event)) { // Redirect keyboard input to active popup. if (windows.has(E->get())) { @@ -453,7 +453,7 @@ } Ref event_from_window = p_event; - if (event_from_window.is_valid() && event_from_window->get_window_id() != INVALID_WINDOW_ID) { + if (event_from_window.is_valid() && event_from_window->get_window_id() != DisplayServerEnums::INVALID_WINDOW_ID) { // Send to a window. if (windows.has(event_from_window->get_window_id())) { Callable callable = windows[event_from_window->get_window_id()].input_event_callback; @@ -464,7 +464,7 @@ } else { // Send to all windows. Copy all pending callbacks, since callback can erase window. Vector cbs; - for (KeyValue &E : windows) { + for (KeyValue &E : windows) { Callable callable = E.value.input_event_callback; if (callable.is_valid()) { cbs.push_back(callable); @@ -607,11 +607,11 @@ } } -bool DisplayServerMacOS::has_window(WindowID p_window) const { +bool DisplayServerMacOS::has_window(DisplayServerEnums::WindowID p_window) const { return windows.has(p_window); } -DisplayServerMacOS::WindowData &DisplayServerMacOS::get_window(WindowID p_window) { +DisplayServerMacOS::WindowData &DisplayServerMacOS::get_window(DisplayServerEnums::WindowID p_window) { return windows[p_window]; } @@ -626,7 +626,7 @@ k.instantiate(); get_key_modifier_state([p_event modifierFlags], k); - k->set_window_id(DisplayServerMacOS::INVALID_WINDOW_ID); + k->set_window_id(DisplayServerEnums::INVALID_WINDOW_ID); k->set_pressed(true); k->set_keycode(Key::PERIOD); k->set_physical_keycode(Key::PERIOD); @@ -643,7 +643,7 @@ k.instantiate(); get_key_modifier_state([p_event modifierFlags], k); - k->set_window_id(DisplayServerMacOS::INVALID_WINDOW_ID); + k->set_window_id(DisplayServerEnums::INVALID_WINDOW_ID); k->set_pressed(true); k->set_keycode(Key::TAB); k->set_physical_keycode(Key::TAB); @@ -656,7 +656,7 @@ } } -void DisplayServerMacOS::send_window_event(const WindowData &wd, WindowEvent p_event) { +void DisplayServerMacOS::send_window_event(const WindowData &wd, DisplayServerEnums::WindowEvent p_event) { _THREAD_SAFE_METHOD_ if (wd.event_callback.is_valid()) { @@ -733,7 +733,7 @@ key_event_buffer.write[key_event_pos++] = p_event; } -void DisplayServerMacOS::set_last_focused_window(WindowID p_window) { +void DisplayServerMacOS::set_last_focused_window(DisplayServerEnums::WindowID p_window) { last_focused_window = p_window; } @@ -745,7 +745,7 @@ return is_resizing; } -void DisplayServerMacOS::window_destroy(WindowID p_window) { +void DisplayServerMacOS::window_destroy(DisplayServerEnums::WindowID p_window) { ERR_FAIL_COND(!windows.has(p_window)); #if defined(GLES3_ENABLED) @@ -767,12 +767,12 @@ windows.erase(p_window); if (last_focused_window == p_window) { - last_focused_window = INVALID_WINDOW_ID; + last_focused_window = DisplayServerEnums::INVALID_WINDOW_ID; } update_presentation_mode(); } -void DisplayServerMacOS::window_resize(WindowID p_window, int p_width, int p_height) { +void DisplayServerMacOS::window_resize(DisplayServerEnums::WindowID p_window, int p_width, int p_height) { #if defined(RD_ENABLED) if (rendering_context) { rendering_context->window_set_size(p_window, p_width, p_height); @@ -788,44 +788,44 @@ #endif } -bool DisplayServerMacOS::has_feature(Feature p_feature) const { +bool DisplayServerMacOS::has_feature(DisplayServerEnums::Feature p_feature) const { switch (p_feature) { #ifndef DISABLE_DEPRECATED - case FEATURE_GLOBAL_MENU: { + case DisplayServerEnums::FEATURE_GLOBAL_MENU: { return (native_menu && native_menu->has_feature(NativeMenu::FEATURE_GLOBAL_MENU)); } break; #endif - case FEATURE_SUBWINDOWS: - //case FEATURE_TOUCHSCREEN: - case FEATURE_MOUSE: - case FEATURE_MOUSE_WARP: - case FEATURE_CLIPBOARD: - case FEATURE_CURSOR_SHAPE: - case FEATURE_CUSTOM_CURSOR_SHAPE: - case FEATURE_NATIVE_DIALOG: - case FEATURE_NATIVE_DIALOG_INPUT: - case FEATURE_NATIVE_DIALOG_FILE: - case FEATURE_NATIVE_DIALOG_FILE_EXTRA: - case FEATURE_NATIVE_DIALOG_FILE_MIME: - case FEATURE_IME: - case FEATURE_WINDOW_TRANSPARENCY: - case FEATURE_HIDPI: - case FEATURE_ICON: - case FEATURE_NATIVE_ICON: - //case FEATURE_KEEP_SCREEN_ON: - case FEATURE_SWAP_BUFFERS: - case FEATURE_TEXT_TO_SPEECH: - case FEATURE_EXTEND_TO_TITLE: - case FEATURE_SCREEN_CAPTURE: - case FEATURE_STATUS_INDICATOR: - case FEATURE_NATIVE_HELP: - case FEATURE_WINDOW_DRAG: - case FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE: - case FEATURE_EMOJI_AND_SYMBOL_PICKER: - case FEATURE_WINDOW_EMBEDDING: - case FEATURE_HDR_OUTPUT: + case DisplayServerEnums::FEATURE_SUBWINDOWS: + //case DisplayServerEnums::FEATURE_TOUCHSCREEN: + case DisplayServerEnums::FEATURE_MOUSE: + case DisplayServerEnums::FEATURE_MOUSE_WARP: + case DisplayServerEnums::FEATURE_CLIPBOARD: + case DisplayServerEnums::FEATURE_CURSOR_SHAPE: + case DisplayServerEnums::FEATURE_CUSTOM_CURSOR_SHAPE: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_INPUT: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_EXTRA: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_MIME: + case DisplayServerEnums::FEATURE_IME: + case DisplayServerEnums::FEATURE_WINDOW_TRANSPARENCY: + case DisplayServerEnums::FEATURE_HIDPI: + case DisplayServerEnums::FEATURE_ICON: + case DisplayServerEnums::FEATURE_NATIVE_ICON: + //case DisplayServerEnums::FEATURE_KEEP_SCREEN_ON: + case DisplayServerEnums::FEATURE_SWAP_BUFFERS: + case DisplayServerEnums::FEATURE_TEXT_TO_SPEECH: + case DisplayServerEnums::FEATURE_EXTEND_TO_TITLE: + case DisplayServerEnums::FEATURE_SCREEN_CAPTURE: + case DisplayServerEnums::FEATURE_STATUS_INDICATOR: + case DisplayServerEnums::FEATURE_NATIVE_HELP: + case DisplayServerEnums::FEATURE_WINDOW_DRAG: + case DisplayServerEnums::FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE: + case DisplayServerEnums::FEATURE_EMOJI_AND_SYMBOL_PICKER: + case DisplayServerEnums::FEATURE_WINDOW_EMBEDDING: + case DisplayServerEnums::FEATURE_HDR_OUTPUT: return true; - case FEATURE_ACCESSIBILITY_SCREEN_READER: { + case DisplayServerEnums::FEATURE_ACCESSIBILITY_SCREEN_READER: { return AccessibilityServer::get_singleton()->is_supported(); } break; default: { @@ -892,18 +892,18 @@ return OK; } -Error DisplayServerMacOS::file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, WindowID p_window_id) { +Error DisplayServerMacOS::file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) { return _file_dialog_with_options_show(p_title, p_current_directory, String(), p_filename, p_show_hidden, p_mode, p_filters, TypedArray(), p_callback, false, p_window_id); } -Error DisplayServerMacOS::file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, WindowID p_window_id) { +Error DisplayServerMacOS::file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) { return _file_dialog_with_options_show(p_title, p_current_directory, p_root, p_filename, p_show_hidden, p_mode, p_filters, p_options, p_callback, true, p_window_id); } -Error DisplayServerMacOS::_file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, bool p_options_in_cb, WindowID p_window_id) { +Error DisplayServerMacOS::_file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, bool p_options_in_cb, DisplayServerEnums::WindowID p_window_id) { _THREAD_SAFE_METHOD_ - ERR_FAIL_INDEX_V(int(p_mode), FILE_DIALOG_MODE_SAVE_MAX, FAILED); + ERR_FAIL_INDEX_V(int(p_mode), DisplayServerEnums::FILE_DIALOG_MODE_SAVE_MAX, FAILED); NSString *url = [NSString stringWithUTF8String:p_current_directory.utf8().get_data()]; @@ -917,7 +917,7 @@ [panel_delegate setRootPath:p_root]; } Callable callback = p_callback; // Make a copy for async completion handler. - if (p_mode == FILE_DIALOG_MODE_SAVE_FILE) { + if (p_mode == DisplayServerEnums::FILE_DIALOG_MODE_SAVE_FILE) { NSSavePanel *panel = [NSSavePanel savePanel]; [panel setDirectoryURL:[NSURL fileURLWithPath:url]]; @@ -1019,7 +1019,7 @@ } } } - if (p_window_id != INVALID_WINDOW_ID) { + if (p_window_id != DisplayServerEnums::INVALID_WINDOW_ID) { callable_mp(DisplayServer::get_singleton(), &DisplayServer::window_move_to_foreground).call_deferred(p_window_id); } }; @@ -1036,8 +1036,8 @@ [panel setExtensionHidden:YES]; [panel setCanSelectHiddenExtension:YES]; [panel setCanCreateDirectories:YES]; - [panel setCanChooseFiles:(p_mode != FILE_DIALOG_MODE_OPEN_DIR)]; - [panel setCanChooseDirectories:(p_mode == FILE_DIALOG_MODE_OPEN_DIR || p_mode == FILE_DIALOG_MODE_OPEN_ANY)]; + [panel setCanChooseFiles:(p_mode != DisplayServerEnums::FILE_DIALOG_MODE_OPEN_DIR)]; + [panel setCanChooseDirectories:(p_mode == DisplayServerEnums::FILE_DIALOG_MODE_OPEN_DIR || p_mode == DisplayServerEnums::FILE_DIALOG_MODE_OPEN_ANY)]; [panel setTreatsFilePackagesAsDirectories:YES]; [panel setShowsHiddenFiles:p_show_hidden]; [panel setDelegate:panel_delegate]; @@ -1045,7 +1045,7 @@ NSString *fileurl = [NSString stringWithUTF8String:p_filename.utf8().get_data()]; [panel setNameFieldStringValue:fileurl]; } - [panel setAllowsMultipleSelection:(p_mode == FILE_DIALOG_MODE_OPEN_FILES)]; + [panel setAllowsMultipleSelection:(p_mode == DisplayServerEnums::FILE_DIALOG_MODE_OPEN_FILES)]; void (^completion_handler)(NSInteger ret) = ^(NSInteger ret) { if (ret == NSModalResponseOK) { @@ -1140,7 +1140,7 @@ } } } - if (p_window_id != INVALID_WINDOW_ID) { + if (p_window_id != DisplayServerEnums::INVALID_WINDOW_ID) { callable_mp(DisplayServer::get_singleton(), &DisplayServer::window_move_to_foreground).call_deferred(p_window_id); } }; @@ -1190,24 +1190,24 @@ return OK; } -void DisplayServerMacOS::_mouse_apply_mode(MouseMode p_prev_mode, MouseMode p_new_mode) { +void DisplayServerMacOS::_mouse_apply_mode(DisplayServerEnums::MouseMode p_prev_mode, DisplayServerEnums::MouseMode p_new_mode) { _THREAD_SAFE_METHOD_ - WindowID window_id = _get_focused_window_or_popup(); + DisplayServerEnums::WindowID window_id = _get_focused_window_or_popup(); if (!windows.has(window_id)) { - window_id = MAIN_WINDOW_ID; + window_id = DisplayServerEnums::MAIN_WINDOW_ID; } WindowData &wd = windows[window_id]; - bool show_cursor = (p_new_mode == MOUSE_MODE_VISIBLE || p_new_mode == MOUSE_MODE_CONFINED); - bool previously_shown = (p_prev_mode == MOUSE_MODE_VISIBLE || p_prev_mode == MOUSE_MODE_CONFINED); + bool show_cursor = (p_new_mode == DisplayServerEnums::MOUSE_MODE_VISIBLE || p_new_mode == DisplayServerEnums::MOUSE_MODE_CONFINED); + bool previously_shown = (p_prev_mode == DisplayServerEnums::MOUSE_MODE_VISIBLE || p_prev_mode == DisplayServerEnums::MOUSE_MODE_CONFINED); if (show_cursor && !previously_shown) { window_id = get_window_at_screen_position(mouse_get_position()); mouse_enter_window(window_id); } - if (p_new_mode == MOUSE_MODE_CAPTURED) { + if (p_new_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { // Apple Docs state that the display parameter is not used. // "This parameter is not used. By default, you may pass kCGDirectMainDisplay." // https://developer.apple.com/library/mac/documentation/graphicsimaging/reference/Quartz_Services_Ref/Reference/reference.html @@ -1221,23 +1221,23 @@ NSPoint pointOnScreen = [[wd.window_view window] convertRectToScreen:pointInWindowRect].origin; CGPoint lMouseWarpPos = { pointOnScreen.x, CGDisplayBounds(CGMainDisplayID()).size.height - pointOnScreen.y }; CGWarpMouseCursorPosition(lMouseWarpPos); - } else if (p_new_mode == MOUSE_MODE_HIDDEN) { + } else if (p_new_mode == DisplayServerEnums::MOUSE_MODE_HIDDEN) { if (previously_shown) { CGDisplayHideCursor(kCGDirectMainDisplay); } [wd.window_object setMovable:YES]; CGAssociateMouseAndMouseCursorPosition(true); - } else if (p_new_mode == MOUSE_MODE_CONFINED) { + } else if (p_new_mode == DisplayServerEnums::MOUSE_MODE_CONFINED) { CGDisplayShowCursor(kCGDirectMainDisplay); [wd.window_object setMovable:NO]; CGAssociateMouseAndMouseCursorPosition(false); - } else if (p_new_mode == MOUSE_MODE_CONFINED_HIDDEN) { + } else if (p_new_mode == DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN) { if (previously_shown) { CGDisplayHideCursor(kCGDirectMainDisplay); } [wd.window_object setMovable:NO]; CGAssociateMouseAndMouseCursorPosition(false); - } else { // MOUSE_MODE_VISIBLE + } else { // DisplayServerEnums::MOUSE_MODE_VISIBLE CGDisplayShowCursor(kCGDirectMainDisplay); [wd.window_object setMovable:YES]; CGAssociateMouseAndMouseCursorPosition(true); @@ -1264,7 +1264,7 @@ return true; } - if (mouse_mode == DisplayServer::MOUSE_MODE_CONFINED || mouse_mode == DisplayServer::MOUSE_MODE_CONFINED_HIDDEN) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN) { // Discard late events. if (p_timestamp < last_warp) { return true; @@ -1321,10 +1321,10 @@ void DisplayServerMacOS::warp_mouse(const Point2i &p_position) { _THREAD_SAFE_METHOD_ - if (mouse_mode != MOUSE_MODE_CAPTURED) { - WindowID window_id = _get_focused_window_or_popup(); + if (mouse_mode != DisplayServerEnums::MOUSE_MODE_CAPTURED) { + DisplayServerEnums::WindowID window_id = _get_focused_window_or_popup(); if (!windows.has(window_id)) { - window_id = MAIN_WINDOW_ID; + window_id = DisplayServerEnums::MAIN_WINDOW_ID; } WindowData &wd = windows[window_id]; @@ -1342,7 +1342,7 @@ CGEventSourceSetLocalEventsSuppressionInterval(lEventRef, 0.0); CGAssociateMouseAndMouseCursorPosition(false); CGWarpMouseCursorPosition(lMouseWarpPos); - if (mouse_mode != MOUSE_MODE_CONFINED && mouse_mode != MOUSE_MODE_CONFINED_HIDDEN) { + if (mouse_mode != DisplayServerEnums::MOUSE_MODE_CONFINED && mouse_mode != DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN) { CGAssociateMouseAndMouseCursorPosition(true); } } @@ -1506,7 +1506,7 @@ Color DisplayServerMacOS::screen_get_pixel(const Point2i &p_position) const { HashSet exclude_windows; - for (HashMap::ConstIterator E = windows.begin(); E; ++E) { + for (HashMap::ConstIterator E = windows.begin(); E; ++E) { if (E->value.hide_from_capture) { exclude_windows.insert([E->value.window_object windowNumber]); } @@ -1550,7 +1550,7 @@ ERR_FAIL_INDEX_V(p_screen, screen_count, Ref()); HashSet exclude_windows; - for (HashMap::ConstIterator E = windows.begin(); E; ++E) { + for (HashMap::ConstIterator E = windows.begin(); E; ++E) { if (E->value.hide_from_capture) { exclude_windows.insert([E->value.window_object windowNumber]); } @@ -1598,7 +1598,7 @@ Ref DisplayServerMacOS::screen_get_image_rect(const Rect2i &p_rect) const { HashSet exclude_windows; - for (HashMap::ConstIterator E = windows.begin(); E; ++E) { + for (HashMap::ConstIterator E = windows.begin(); E; ++E) { if (E->value.hide_from_capture) { exclude_windows.insert([E->value.window_object windowNumber]); } @@ -1644,28 +1644,28 @@ return img; } -Vector DisplayServerMacOS::get_window_list() const { +Vector DisplayServerMacOS::get_window_list() const { _THREAD_SAFE_METHOD_ Vector ret; - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { ret.push_back(E.key); } return ret; } -DisplayServer::WindowID DisplayServerMacOS::create_sub_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, WindowID p_transient_parent) { +DisplayServerEnums::WindowID DisplayServerMacOS::create_sub_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, DisplayServerEnums::WindowID p_transient_parent) { _THREAD_SAFE_METHOD_ - WindowID id = _create_window(p_mode, p_vsync_mode, p_rect); + DisplayServerEnums::WindowID id = _create_window(p_mode, p_vsync_mode, p_rect); - uint32_t set_flags = p_flags & ~(WINDOW_FLAG_MAX - 1); // Clear the flags that are not supported by the window. + uint32_t set_flags = p_flags & ~(DisplayServerEnums::WINDOW_FLAG_MAX - 1); // Clear the flags that are not supported by the window. while (set_flags != 0) { // Find the index of the next set bit. uint32_t index = (uint32_t)__builtin_ctzll(set_flags); // Clear the set bit. set_flags &= (set_flags - 1); - window_set_flag(WindowFlags(index), true, id); + window_set_flag(DisplayServerEnums::WindowFlags(index), true, id); } #ifdef RD_ENABLED @@ -1675,17 +1675,17 @@ #endif window_set_exclusive(id, p_exclusive); - if (p_transient_parent != INVALID_WINDOW_ID) { + if (p_transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { window_set_transient(id, p_transient_parent); } return id; } -void DisplayServerMacOS::show_window(WindowID p_id) { +void DisplayServerMacOS::show_window(DisplayServerEnums::WindowID p_id) { WindowData &wd = windows[p_id]; - if (p_id == MAIN_WINDOW_ID) { + if (p_id == DisplayServerEnums::MAIN_WINDOW_ID) { [GodotApp activateApplication]; } @@ -1693,11 +1693,11 @@ if ([wd.window_object isMiniaturized]) { return; } else if (wd.no_focus) { - if (wd.transient_parent != INVALID_WINDOW_ID) { + if (wd.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { WindowData &wd_parent = windows[wd.transient_parent]; [wd.window_object orderWindow:NSWindowAbove relativeTo:[wd_parent.window_object windowNumber]]; - } else if (p_id != MAIN_WINDOW_ID) { - [wd.window_object orderWindow:NSWindowAbove relativeTo:[windows[MAIN_WINDOW_ID].window_object windowNumber]]; + } else if (p_id != DisplayServerEnums::MAIN_WINDOW_ID) { + [wd.window_object orderWindow:NSWindowAbove relativeTo:[windows[DisplayServerEnums::MAIN_WINDOW_ID].window_object windowNumber]]; } else { [wd.window_object orderFront:nil]; } @@ -1706,11 +1706,11 @@ } } -void DisplayServerMacOS::delete_sub_window(WindowID p_id) { +void DisplayServerMacOS::delete_sub_window(DisplayServerEnums::WindowID p_id) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_id)); - ERR_FAIL_COND_MSG(p_id == MAIN_WINDOW_ID, "Main window can't be deleted"); + ERR_FAIL_COND_MSG(p_id == DisplayServerEnums::MAIN_WINDOW_ID, "Main window can't be deleted"); WindowData &wd = windows[p_id]; @@ -1721,7 +1721,7 @@ mouse_enter_window(get_window_at_screen_position(mouse_get_position())); } -void DisplayServerMacOS::window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerMacOS::window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -1729,7 +1729,7 @@ wd.rect_changed_callback = p_callable; } -void DisplayServerMacOS::window_set_window_event_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerMacOS::window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -1737,7 +1737,7 @@ wd.event_callback = p_callable; } -void DisplayServerMacOS::window_set_input_event_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerMacOS::window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -1745,21 +1745,21 @@ wd.input_event_callback = p_callable; } -void DisplayServerMacOS::window_set_input_text_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerMacOS::window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; wd.input_text_callback = p_callable; } -void DisplayServerMacOS::window_set_drop_files_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerMacOS::window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; wd.drop_files_callback = p_callable; } -void DisplayServerMacOS::window_set_title(const String &p_title, WindowID p_window) { +void DisplayServerMacOS::window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -1768,7 +1768,7 @@ [wd.window_object setTitle:[NSString stringWithUTF8String:p_title.utf8().get_data()]]; } -Size2i DisplayServerMacOS::window_get_title_size(const String &p_title, WindowID p_window) const { +Size2i DisplayServerMacOS::window_get_title_size(const String &p_title, DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ Size2i size; @@ -1809,7 +1809,7 @@ return size * scale; } -void DisplayServerMacOS::window_set_mouse_passthrough(const Vector &p_region, WindowID p_window) { +void DisplayServerMacOS::window_set_mouse_passthrough(const Vector &p_region, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -1818,16 +1818,16 @@ wd.mpath = p_region; } -int DisplayServerMacOS::window_get_current_screen(WindowID p_window) const { +int DisplayServerMacOS::window_get_current_screen(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ - ERR_FAIL_COND_V(!windows.has(p_window), INVALID_SCREEN); + ERR_FAIL_COND_V(!windows.has(p_window), DisplayServerEnums::INVALID_SCREEN); const WindowData &wd = windows[p_window]; const NSUInteger index = [[NSScreen screens] indexOfObject:[wd.window_object screen]]; return (index == NSNotFound) ? 0 : index; } -void DisplayServerMacOS::window_set_current_screen(int p_screen, WindowID p_window) { +void DisplayServerMacOS::window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -1872,7 +1872,7 @@ } } -void DisplayServerMacOS::reparent_check(WindowID p_window) { +void DisplayServerMacOS::reparent_check(DisplayServerEnums::WindowID p_window) { ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; NSScreen *screen = [wd.window_object screen]; @@ -1881,7 +1881,7 @@ _window_update_display_id(&wd); - if (wd.transient_parent != INVALID_WINDOW_ID) { + if (wd.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { WindowData &wd_parent = windows[wd.transient_parent]; NSScreen *parent_screen = [wd_parent.window_object screen]; @@ -1894,11 +1894,11 @@ if ([[wd_parent.window_object childWindows] containsObject:wd.window_object]) { [wd_parent.window_object removeChildWindow:wd.window_object]; [wd.window_object setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary]; - if (wd.transient_parent != INVALID_WINDOW_ID) { + if (wd.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { WindowData &wd_parent = windows[wd.transient_parent]; [wd.window_object orderWindow:NSWindowAbove relativeTo:[wd_parent.window_object windowNumber]]; - } else if (p_window != MAIN_WINDOW_ID) { - [wd.window_object orderWindow:NSWindowAbove relativeTo:[windows[MAIN_WINDOW_ID].window_object windowNumber]]; + } else if (p_window != DisplayServerEnums::MAIN_WINDOW_ID) { + [wd.window_object orderWindow:NSWindowAbove relativeTo:[windows[DisplayServerEnums::MAIN_WINDOW_ID].window_object windowNumber]]; } else { [wd.window_object orderFront:nil]; } @@ -1906,7 +1906,7 @@ } } - for (const WindowID &child : wd.transient_children) { + for (const DisplayServerEnums::WindowID &child : wd.transient_children) { WindowData &wd_child = windows[child]; NSScreen *child_screen = [wd_child.window_object screen]; @@ -1927,7 +1927,7 @@ } } -void DisplayServerMacOS::window_set_exclusive(WindowID p_window, bool p_exclusive) { +void DisplayServerMacOS::window_set_exclusive(DisplayServerEnums::WindowID p_window, bool p_exclusive) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; @@ -1937,7 +1937,7 @@ } } -Point2i DisplayServerMacOS::window_get_position(WindowID p_window) const { +Point2i DisplayServerMacOS::window_get_position(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Point2i()); @@ -1960,7 +1960,7 @@ return pos; } -Point2i DisplayServerMacOS::window_get_position_with_decorations(WindowID p_window) const { +Point2i DisplayServerMacOS::window_get_position_with_decorations(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Point2i()); @@ -1981,7 +1981,7 @@ return pos; } -void DisplayServerMacOS::window_set_position(const Point2i &p_position, WindowID p_window) { +void DisplayServerMacOS::window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2013,7 +2013,7 @@ update_mouse_pos(wd, [wd.window_object mouseLocationOutsideOfEventStream]); } -void DisplayServerMacOS::window_set_transient(WindowID p_window, WindowID p_parent) { +void DisplayServerMacOS::window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(p_window == p_parent); @@ -2023,14 +2023,14 @@ ERR_FAIL_COND(wd_window.transient_parent == p_parent); ERR_FAIL_COND_MSG(wd_window.on_top, "Windows with the 'on top' can't become transient."); - if (p_parent == INVALID_WINDOW_ID) { + if (p_parent == DisplayServerEnums::INVALID_WINDOW_ID) { // Remove transient. - ERR_FAIL_COND(wd_window.transient_parent == INVALID_WINDOW_ID); + ERR_FAIL_COND(wd_window.transient_parent == DisplayServerEnums::INVALID_WINDOW_ID); ERR_FAIL_COND(!windows.has(wd_window.transient_parent)); WindowData &wd_parent = windows[wd_window.transient_parent]; - wd_window.transient_parent = INVALID_WINDOW_ID; + wd_window.transient_parent = DisplayServerEnums::INVALID_WINDOW_ID; wd_parent.transient_children.erase(p_window); if ([[wd_parent.window_object childWindows] containsObject:wd_window.window_object]) { [wd_parent.window_object removeChildWindow:wd_window.window_object]; @@ -2038,7 +2038,7 @@ [wd_window.window_object setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary]; } else { ERR_FAIL_COND(!windows.has(p_parent)); - ERR_FAIL_COND_MSG(wd_window.transient_parent != INVALID_WINDOW_ID, "Window already has a transient parent"); + ERR_FAIL_COND_MSG(wd_window.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID, "Window already has a transient parent"); WindowData &wd_parent = windows[p_parent]; wd_window.transient_parent = p_parent; @@ -2047,7 +2047,7 @@ } } -void DisplayServerMacOS::window_set_max_size(const Size2i p_size, WindowID p_window) { +void DisplayServerMacOS::window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2067,7 +2067,7 @@ } } -Size2i DisplayServerMacOS::window_get_max_size(WindowID p_window) const { +Size2i DisplayServerMacOS::window_get_max_size(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Size2i()); @@ -2077,7 +2077,7 @@ void DisplayServerMacOS::update_presentation_mode() { bool has_fs_windows = false; - for (const KeyValue &wd : windows) { + for (const KeyValue &wd : windows) { if (wd.value.fullscreen) { if (wd.value.exclusive_fullscreen) { return; @@ -2093,7 +2093,7 @@ } } -void DisplayServerMacOS::window_set_min_size(const Size2i p_size, WindowID p_window) { +void DisplayServerMacOS::window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2113,7 +2113,7 @@ } } -Size2i DisplayServerMacOS::window_get_min_size(WindowID p_window) const { +Size2i DisplayServerMacOS::window_get_min_size(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Size2i()); @@ -2122,7 +2122,7 @@ return wd.min_size; } -void DisplayServerMacOS::window_set_size(const Size2i p_size, WindowID p_window) { +void DisplayServerMacOS::window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2150,7 +2150,7 @@ _update_window_style(wd, p_window); } -Size2i DisplayServerMacOS::window_get_size(WindowID p_window) const { +Size2i DisplayServerMacOS::window_get_size(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Size2i()); @@ -2158,7 +2158,7 @@ return wd.size; } -Size2i DisplayServerMacOS::window_get_size_with_decorations(WindowID p_window) const { +Size2i DisplayServerMacOS::window_get_size_with_decorations(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Size2i()); @@ -2167,28 +2167,28 @@ return Size2i(frame.size.width, frame.size.height) * screen_get_max_scale(); } -void DisplayServerMacOS::window_set_mode(WindowMode p_mode, WindowID p_window) { +void DisplayServerMacOS::window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; - WindowMode old_mode = window_get_mode(p_window); + DisplayServerEnums::WindowMode old_mode = window_get_mode(p_window); if (old_mode == p_mode) { return; // Do nothing. } switch (old_mode) { - case WINDOW_MODE_WINDOWED: { + case DisplayServerEnums::WINDOW_MODE_WINDOWED: { // Do nothing. } break; - case WINDOW_MODE_MINIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MINIMIZED: { [wd.window_object deminiaturize:nil]; } break; - case WINDOW_MODE_EXCLUSIVE_FULLSCREEN: - case WINDOW_MODE_FULLSCREEN: { - if (p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN || p_mode == WINDOW_MODE_FULLSCREEN) { - if (p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + case DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN: + case DisplayServerEnums::WINDOW_MODE_FULLSCREEN: { + if (p_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN || p_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { const NSUInteger presentationOptions = NSApplicationPresentationHideDock | NSApplicationPresentationHideMenuBar; [NSApp setPresentationOptions:presentationOptions]; wd.exclusive_fullscreen = true; @@ -2217,14 +2217,14 @@ } [wd.window_object toggleFullScreen:nil]; - if (old_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if (old_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { update_presentation_mode(); } wd.fullscreen = false; wd.exclusive_fullscreen = false; } break; - case WINDOW_MODE_MAXIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MAXIMIZED: { if (NSEqualRects([wd.window_object frame], [[wd.window_object screen] visibleFrame])) { if (wd.borderless) { if (wd.pre_zoom_rect.size.width > 0 && wd.pre_zoom_rect.size.height > 0) { @@ -2238,14 +2238,14 @@ } switch (p_mode) { - case WINDOW_MODE_WINDOWED: { + case DisplayServerEnums::WINDOW_MODE_WINDOWED: { // Do nothing. } break; - case WINDOW_MODE_MINIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MINIMIZED: { [wd.window_object performMiniaturize:nil]; } break; - case WINDOW_MODE_EXCLUSIVE_FULLSCREEN: - case WINDOW_MODE_FULLSCREEN: { + case DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN: + case DisplayServerEnums::WINDOW_MODE_FULLSCREEN: { if (wd.resize_disabled) { // Fullscreen window should be resizable to work. [wd.window_object setStyleMask:[wd.window_object styleMask] | NSWindowStyleMaskResizable]; } @@ -2254,7 +2254,7 @@ [wd.window_object toggleFullScreen:nil]; wd.fullscreen = true; - if (p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { const NSUInteger presentationOptions = NSApplicationPresentationHideDock | NSApplicationPresentationHideMenuBar; [NSApp setPresentationOptions:presentationOptions]; wd.exclusive_fullscreen = true; @@ -2263,7 +2263,7 @@ update_presentation_mode(); } } break; - case WINDOW_MODE_MAXIMIZED: { + case DisplayServerEnums::WINDOW_MODE_MAXIMIZED: { if (!NSEqualRects([wd.window_object frame], [[wd.window_object screen] visibleFrame])) { wd.pre_zoom_rect = [wd.window_object frame]; if (wd.borderless) { @@ -2276,33 +2276,33 @@ } } -DisplayServer::WindowMode DisplayServerMacOS::window_get_mode(WindowID p_window) const { +DisplayServerEnums::WindowMode DisplayServerMacOS::window_get_mode(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ - ERR_FAIL_COND_V(!windows.has(p_window), WINDOW_MODE_WINDOWED); + ERR_FAIL_COND_V(!windows.has(p_window), DisplayServerEnums::WINDOW_MODE_WINDOWED); const WindowData &wd = windows[p_window]; if (wd.fullscreen) { // If fullscreen, it's not in another mode. if (wd.exclusive_fullscreen) { - return WINDOW_MODE_EXCLUSIVE_FULLSCREEN; + return DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN; } else { - return WINDOW_MODE_FULLSCREEN; + return DisplayServerEnums::WINDOW_MODE_FULLSCREEN; } } if (NSEqualRects([wd.window_object frame], [[wd.window_object screen] visibleFrame])) { - return WINDOW_MODE_MAXIMIZED; + return DisplayServerEnums::WINDOW_MODE_MAXIMIZED; } if ([wd.window_object respondsToSelector:@selector(isMiniaturized)]) { if ([wd.window_object isMiniaturized]) { - return WINDOW_MODE_MINIMIZED; + return DisplayServerEnums::WINDOW_MODE_MINIMIZED; } } // All other discarded, return windowed. - return WINDOW_MODE_WINDOWED; + return DisplayServerEnums::WINDOW_MODE_WINDOWED; } -bool DisplayServerMacOS::window_is_maximize_allowed(WindowID p_window) const { +bool DisplayServerMacOS::window_is_maximize_allowed(DisplayServerEnums::WindowID p_window) const { ERR_FAIL_COND_V(!windows.has(p_window), false); const WindowData &wd = windows[p_window]; @@ -2319,7 +2319,7 @@ return [value isEqualToString:@"Minimize"]; } -void DisplayServerMacOS::window_start_drag(WindowID p_window) { +void DisplayServerMacOS::window_start_drag(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2329,17 +2329,17 @@ [wd.window_object performWindowDragWithEvent:event]; } -void DisplayServerMacOS::window_start_resize(WindowResizeEdge p_edge, WindowID p_window) { +void DisplayServerMacOS::window_start_resize(DisplayServerEnums::WindowResizeEdge p_edge, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ - ERR_FAIL_INDEX(int(p_edge), WINDOW_EDGE_MAX); + ERR_FAIL_INDEX(int(p_edge), DisplayServerEnums::WINDOW_EDGE_MAX); ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; wd.edge = p_edge; } -void DisplayServerMacOS::window_set_window_buttons_offset(const Vector2i &p_offset, WindowID p_window) { +void DisplayServerMacOS::window_set_window_buttons_offset(const Vector2i &p_offset, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2352,7 +2352,7 @@ } } -Vector3i DisplayServerMacOS::window_get_safe_title_margins(WindowID p_window) const { +Vector3i DisplayServerMacOS::window_get_safe_title_margins(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Vector3i()); @@ -2406,26 +2406,26 @@ } } -void DisplayServerMacOS::window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window) { +void DisplayServerMacOS::window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; switch (p_flag) { - case WINDOW_FLAG_MINIMIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_MINIMIZE_DISABLED: { wd.no_min_btn = p_enabled; [[wd.window_object standardWindowButton:NSWindowMiniaturizeButton] setEnabled:!p_enabled]; [[wd.window_object standardWindowButton:NSWindowMiniaturizeButton] setHidden:(wd.no_min_btn && wd.no_max_btn)]; [[wd.window_object standardWindowButton:NSWindowZoomButton] setHidden:(wd.no_min_btn && wd.no_max_btn)]; } break; - case WINDOW_FLAG_MAXIMIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_MAXIMIZE_DISABLED: { wd.no_max_btn = p_enabled; [[wd.window_object standardWindowButton:NSWindowZoomButton] setEnabled:!p_enabled]; [[wd.window_object standardWindowButton:NSWindowMiniaturizeButton] setHidden:(wd.no_min_btn && wd.no_max_btn)]; [[wd.window_object standardWindowButton:NSWindowZoomButton] setHidden:(wd.no_min_btn && wd.no_max_btn)]; } break; - case WINDOW_FLAG_RESIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_RESIZE_DISABLED: { wd.resize_disabled = p_enabled; if (wd.fullscreen) { // Fullscreen window should be resizable, style will be applied on exiting fullscreen. return; @@ -2440,7 +2440,7 @@ [[wd.window_object standardWindowButton:NSWindowMiniaturizeButton] setHidden:(wd.no_min_btn && wd.no_max_btn)]; [[wd.window_object standardWindowButton:NSWindowZoomButton] setHidden:(wd.no_min_btn && wd.no_max_btn)]; } break; - case WINDOW_FLAG_EXTEND_TO_TITLE: { + case DisplayServerEnums::WINDOW_FLAG_EXTEND_TO_TITLE: { NSRect rect = [wd.window_object frame]; wd.extend_to_title = p_enabled; if (p_enabled) { @@ -2457,9 +2457,9 @@ } } [wd.window_object setFrame:rect display:YES]; - send_window_event(wd, DisplayServerMacOS::WINDOW_EVENT_TITLEBAR_CHANGE); + send_window_event(wd, DisplayServerEnums::WINDOW_EVENT_TITLEBAR_CHANGE); } break; - case WINDOW_FLAG_BORDERLESS: { + case DisplayServerEnums::WINDOW_FLAG_BORDERLESS: { if (wd.fullscreen) { return; } @@ -2498,11 +2498,11 @@ if ([wd.window_object isMiniaturized]) { return; } else if (wd.no_focus) { - if (wd.transient_parent != INVALID_WINDOW_ID) { + if (wd.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { WindowData &wd_parent = windows[wd.transient_parent]; [wd.window_object orderWindow:NSWindowAbove relativeTo:[wd_parent.window_object windowNumber]]; - } else if (p_window != MAIN_WINDOW_ID) { - [wd.window_object orderWindow:NSWindowAbove relativeTo:[windows[MAIN_WINDOW_ID].window_object windowNumber]]; + } else if (p_window != DisplayServerEnums::MAIN_WINDOW_ID) { + [wd.window_object orderWindow:NSWindowAbove relativeTo:[windows[DisplayServerEnums::MAIN_WINDOW_ID].window_object windowNumber]]; } else { [wd.window_object orderFront:nil]; } @@ -2514,7 +2514,7 @@ [wd.window_object setFrame:[[wd.window_object screen] visibleFrame] display:NO]; } } break; - case WINDOW_FLAG_ALWAYS_ON_TOP: { + case DisplayServerEnums::WINDOW_FLAG_ALWAYS_ON_TOP: { wd.on_top = p_enabled; if (wd.fullscreen) { return; @@ -2525,7 +2525,7 @@ [(NSWindow *)wd.window_object setLevel:NSNormalWindowLevel]; } } break; - case WINDOW_FLAG_TRANSPARENT: { + case DisplayServerEnums::WINDOW_FLAG_TRANSPARENT: { if (wd.fullscreen) { return; } @@ -2538,13 +2538,13 @@ [wd.window_object setFrame:frameRect display:NO]; } } break; - case WINDOW_FLAG_NO_FOCUS: { + case DisplayServerEnums::WINDOW_FLAG_NO_FOCUS: { wd.no_focus = p_enabled; NSWindow *w = wd.window_object; w.excludedFromWindowsMenu = wd.is_popup || wd.no_focus; } break; - case WINDOW_FLAG_EXCLUDE_FROM_CAPTURE: { + case DisplayServerEnums::WINDOW_FLAG_EXCLUDE_FROM_CAPTURE: { if (p_enabled) { [wd.window_object setSharingType:NSWindowSharingNone]; } else { @@ -2552,11 +2552,11 @@ } wd.hide_from_capture = p_enabled; } break; - case WINDOW_FLAG_MOUSE_PASSTHROUGH: { + case DisplayServerEnums::WINDOW_FLAG_MOUSE_PASSTHROUGH: { wd.mpass = p_enabled; } break; - case WINDOW_FLAG_POPUP: { - ERR_FAIL_COND_MSG(p_window == MAIN_WINDOW_ID, "Main window can't be popup."); + case DisplayServerEnums::WINDOW_FLAG_POPUP: { + ERR_FAIL_COND_MSG(p_window == DisplayServerEnums::MAIN_WINDOW_ID, "Main window can't be popup."); ERR_FAIL_COND_MSG([wd.window_object isVisible] && (wd.is_popup != p_enabled), "Popup flag can't changed while window is opened."); wd.is_popup = p_enabled; @@ -2568,44 +2568,44 @@ } } -bool DisplayServerMacOS::window_get_flag(WindowFlags p_flag, WindowID p_window) const { +bool DisplayServerMacOS::window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), false); const WindowData &wd = windows[p_window]; switch (p_flag) { - case WINDOW_FLAG_MAXIMIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_MAXIMIZE_DISABLED: { return wd.no_max_btn; } break; - case WINDOW_FLAG_MINIMIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_MINIMIZE_DISABLED: { return wd.no_min_btn; } break; - case WINDOW_FLAG_RESIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_RESIZE_DISABLED: { return wd.resize_disabled; } break; - case WINDOW_FLAG_EXTEND_TO_TITLE: { + case DisplayServerEnums::WINDOW_FLAG_EXTEND_TO_TITLE: { return [wd.window_object styleMask] & NSWindowStyleMaskFullSizeContentView; } break; - case WINDOW_FLAG_BORDERLESS: { + case DisplayServerEnums::WINDOW_FLAG_BORDERLESS: { return [wd.window_object styleMask] == NSWindowStyleMaskBorderless; } break; - case WINDOW_FLAG_ALWAYS_ON_TOP: { + case DisplayServerEnums::WINDOW_FLAG_ALWAYS_ON_TOP: { return wd.on_top; } break; - case WINDOW_FLAG_TRANSPARENT: { + case DisplayServerEnums::WINDOW_FLAG_TRANSPARENT: { return wd.layered_window; } break; - case WINDOW_FLAG_NO_FOCUS: { + case DisplayServerEnums::WINDOW_FLAG_NO_FOCUS: { return wd.no_focus; } break; - case WINDOW_FLAG_EXCLUDE_FROM_CAPTURE: { + case DisplayServerEnums::WINDOW_FLAG_EXCLUDE_FROM_CAPTURE: { return wd.hide_from_capture; } break; - case WINDOW_FLAG_MOUSE_PASSTHROUGH: { + case DisplayServerEnums::WINDOW_FLAG_MOUSE_PASSTHROUGH: { return wd.mpass; } break; - case WINDOW_FLAG_POPUP: { + case DisplayServerEnums::WINDOW_FLAG_POPUP: { return wd.is_popup; } break; default: { @@ -2615,13 +2615,13 @@ return false; } -void DisplayServerMacOS::window_request_attention(WindowID p_window) { +void DisplayServerMacOS::window_request_attention(DisplayServerEnums::WindowID p_window) { // It's app global, ignore window id. [NSApp requestUserAttention:NSCriticalRequest]; } -void DisplayServerMacOS::window_set_taskbar_progress_value(float p_value, WindowID p_window) { - ERR_FAIL_COND(p_window != MAIN_WINDOW_ID); +void DisplayServerMacOS::window_set_taskbar_progress_value(float p_value, DisplayServerEnums::WindowID p_window) { + ERR_FAIL_COND(p_window != DisplayServerEnums::MAIN_WINDOW_ID); if (!dock_progress) { dock_progress = [[GodotProgressView alloc] init]; @@ -2631,8 +2631,8 @@ [dock_progress setValue:p_value]; } -void DisplayServerMacOS::window_set_taskbar_progress_state(ProgressState p_state, WindowID p_window) { - ERR_FAIL_COND(p_window != MAIN_WINDOW_ID); +void DisplayServerMacOS::window_set_taskbar_progress_state(DisplayServerEnums::ProgressState p_state, DisplayServerEnums::WindowID p_window) { + ERR_FAIL_COND(p_window != DisplayServerEnums::MAIN_WINDOW_ID); if (!dock_progress) { dock_progress = [[GodotProgressView alloc] init]; @@ -2642,7 +2642,7 @@ [dock_progress setState:p_state]; } -void DisplayServerMacOS::window_move_to_foreground(WindowID p_window) { +void DisplayServerMacOS::window_move_to_foreground(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2650,11 +2650,11 @@ [[NSApplication sharedApplication] activateIgnoringOtherApps:YES]; if (wd.no_focus || wd.is_popup) { - if (wd.transient_parent != INVALID_WINDOW_ID) { + if (wd.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { WindowData &wd_parent = windows[wd.transient_parent]; [wd.window_object orderWindow:NSWindowAbove relativeTo:[wd_parent.window_object windowNumber]]; - } else if (p_window != MAIN_WINDOW_ID) { - [wd.window_object orderWindow:NSWindowAbove relativeTo:[windows[MAIN_WINDOW_ID].window_object windowNumber]]; + } else if (p_window != DisplayServerEnums::MAIN_WINDOW_ID) { + [wd.window_object orderWindow:NSWindowAbove relativeTo:[windows[DisplayServerEnums::MAIN_WINDOW_ID].window_object windowNumber]]; } else { [wd.window_object orderFront:nil]; } @@ -2663,7 +2663,7 @@ } } -bool DisplayServerMacOS::window_is_focused(WindowID p_window) const { +bool DisplayServerMacOS::window_is_focused(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), false); @@ -2672,18 +2672,18 @@ return wd.focused; } -DisplayServerMacOS::WindowID DisplayServerMacOS::get_focused_window() const { +DisplayServerEnums::WindowID DisplayServerMacOS::get_focused_window() const { return last_focused_window; } -bool DisplayServerMacOS::window_can_draw(WindowID p_window) const { +bool DisplayServerMacOS::window_can_draw(DisplayServerEnums::WindowID p_window) const { return windows[p_window].is_visible; } bool DisplayServerMacOS::can_any_window_draw() const { _THREAD_SAFE_METHOD_ - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { if (E.value.is_visible) { return true; } @@ -2691,7 +2691,7 @@ return false; } -void DisplayServerMacOS::window_set_ime_active(const bool p_active, WindowID p_window) { +void DisplayServerMacOS::window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2704,7 +2704,7 @@ } } -void DisplayServerMacOS::window_set_ime_position(const Point2i &p_pos, WindowID p_window) { +void DisplayServerMacOS::window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2713,35 +2713,35 @@ wd.im_position = p_pos; } -DisplayServer::WindowID DisplayServerMacOS::get_window_at_screen_position(const Point2i &p_position) const { +DisplayServerEnums::WindowID DisplayServerMacOS::get_window_at_screen_position(const Point2i &p_position) const { Point2i position = p_position; position.y *= -1; position += _get_screens_origin(); position /= screen_get_max_scale(); NSInteger wnum = [NSWindow windowNumberAtPoint:NSMakePoint(position.x, position.y) belowWindowWithWindowNumber:0 /*topmost*/]; - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { if ([E.value.window_object windowNumber] == wnum) { return E.key; } } - return INVALID_WINDOW_ID; + return DisplayServerEnums::INVALID_WINDOW_ID; } -int64_t DisplayServerMacOS::window_get_native_handle(HandleType p_handle_type, WindowID p_window) const { +int64_t DisplayServerMacOS::window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window) const { ERR_FAIL_COND_V(!windows.has(p_window), 0); switch (p_handle_type) { - case DISPLAY_HANDLE: { + case DisplayServerEnums::DISPLAY_HANDLE: { return 0; // Not supported. } - case WINDOW_HANDLE: { + case DisplayServerEnums::WINDOW_HANDLE: { return (int64_t)windows[p_window].window_object; } - case WINDOW_VIEW: { + case DisplayServerEnums::WINDOW_VIEW: { return (int64_t)windows[p_window].window_view; } #ifdef GLES3_ENABLED - case OPENGL_CONTEXT: { + case DisplayServerEnums::OPENGL_CONTEXT: { if (gl_manager_legacy) { return (int64_t)gl_manager_legacy->get_context(p_window); } @@ -2750,13 +2750,13 @@ } return 0; } - case EGL_DISPLAY: { + case DisplayServerEnums::EGL_DISPLAY: { if (gl_manager_angle) { return (int64_t)gl_manager_angle->get_display(p_window); } return 0; } - case EGL_CONFIG: { + case DisplayServerEnums::EGL_CONFIG: { if (gl_manager_angle) { return (int64_t)gl_manager_angle->get_config(p_window); } @@ -2769,21 +2769,21 @@ } } -void DisplayServerMacOS::window_attach_instance_id(ObjectID p_instance, WindowID p_window) { +void DisplayServerMacOS::window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); windows[p_window].instance_id = p_instance; } -ObjectID DisplayServerMacOS::window_get_attached_instance_id(WindowID p_window) const { +ObjectID DisplayServerMacOS::window_get_attached_instance_id(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), ObjectID()); return windows[p_window].instance_id; } -void DisplayServerMacOS::gl_window_make_current(DisplayServer::WindowID p_window_id) { +void DisplayServerMacOS::gl_window_make_current(DisplayServerEnums::WindowID p_window_id) { #if defined(GLES3_ENABLED) if (gl_manager_legacy) { gl_manager_legacy->window_make_current(p_window_id); @@ -2794,14 +2794,14 @@ #endif } -void DisplayServerMacOS::window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window) { +void DisplayServerMacOS::window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ #if defined(GLES3_ENABLED) if (gl_manager_angle) { - gl_manager_angle->set_use_vsync(p_vsync_mode != DisplayServer::VSYNC_DISABLED); + gl_manager_angle->set_use_vsync(p_vsync_mode != DisplayServerEnums::VSYNC_DISABLED); } if (gl_manager_legacy) { - gl_manager_legacy->set_use_vsync(p_vsync_mode != DisplayServer::VSYNC_DISABLED); + gl_manager_legacy->set_use_vsync(p_vsync_mode != DisplayServerEnums::VSYNC_DISABLED); } #endif #if defined(RD_ENABLED) @@ -2811,14 +2811,14 @@ #endif } -DisplayServer::VSyncMode DisplayServerMacOS::window_get_vsync_mode(WindowID p_window) const { +DisplayServerEnums::VSyncMode DisplayServerMacOS::window_get_vsync_mode(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(GLES3_ENABLED) if (gl_manager_angle) { - return (gl_manager_angle->is_using_vsync() ? DisplayServer::VSyncMode::VSYNC_ENABLED : DisplayServer::VSyncMode::VSYNC_DISABLED); + return (gl_manager_angle->is_using_vsync() ? DisplayServerEnums::VSyncMode::VSYNC_ENABLED : DisplayServerEnums::VSyncMode::VSYNC_DISABLED); } if (gl_manager_legacy) { - return (gl_manager_legacy->is_using_vsync() ? DisplayServer::VSyncMode::VSYNC_ENABLED : DisplayServer::VSyncMode::VSYNC_DISABLED); + return (gl_manager_legacy->is_using_vsync() ? DisplayServerEnums::VSyncMode::VSYNC_ENABLED : DisplayServerEnums::VSyncMode::VSYNC_DISABLED); } #endif #if defined(RD_ENABLED) @@ -2826,18 +2826,18 @@ return rendering_context->window_get_vsync_mode(p_window); } #endif - return DisplayServer::VSYNC_ENABLED; + return DisplayServerEnums::VSYNC_ENABLED; } -DisplayServerMacOSBase::HDROutput &DisplayServerMacOS::_get_hdr_output(WindowID p_window) { +DisplayServerMacOSBase::HDROutput &DisplayServerMacOS::_get_hdr_output(DisplayServerEnums::WindowID p_window) { return windows.getptr(p_window)->hdr_output; } -const DisplayServerMacOSBase::HDROutput &DisplayServerMacOS::_get_hdr_output(WindowID p_window) const { +const DisplayServerMacOSBase::HDROutput &DisplayServerMacOS::_get_hdr_output(DisplayServerEnums::WindowID p_window) const { return windows.getptr(p_window)->hdr_output; } -void DisplayServerMacOS::window_get_edr_values(WindowID p_window, CGFloat *r_max_potential_edr_value, CGFloat *r_max_edr_value) const { +void DisplayServerMacOS::window_get_edr_values(DisplayServerEnums::WindowID p_window, CGFloat *r_max_potential_edr_value, CGFloat *r_max_edr_value) const { _THREAD_SAFE_METHOD_ const WindowData *wd = windows.getptr(p_window); @@ -2861,7 +2861,7 @@ } void DisplayServerMacOS::update_screen_parameters() { - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { if (E.value.hdr_output.requested) { _update_hdr_output(E.key, E.value.hdr_output); } @@ -2881,55 +2881,55 @@ [cursors[cursor_shape] set]; } else { switch (cursor_shape) { - case CURSOR_ARROW: + case DisplayServerEnums::CURSOR_ARROW: [[NSCursor arrowCursor] set]; break; - case CURSOR_IBEAM: + case DisplayServerEnums::CURSOR_IBEAM: [[NSCursor IBeamCursor] set]; break; - case CURSOR_POINTING_HAND: + case DisplayServerEnums::CURSOR_POINTING_HAND: [[NSCursor pointingHandCursor] set]; break; - case CURSOR_CROSS: + case DisplayServerEnums::CURSOR_CROSS: [[NSCursor crosshairCursor] set]; break; - case CURSOR_WAIT: + case DisplayServerEnums::CURSOR_WAIT: [[NSCursor arrowCursor] set]; break; - case CURSOR_BUSY: + case DisplayServerEnums::CURSOR_BUSY: [[NSCursor arrowCursor] set]; break; - case CURSOR_DRAG: + case DisplayServerEnums::CURSOR_DRAG: [[NSCursor closedHandCursor] set]; break; - case CURSOR_CAN_DROP: + case DisplayServerEnums::CURSOR_CAN_DROP: [[NSCursor openHandCursor] set]; break; - case CURSOR_FORBIDDEN: + case DisplayServerEnums::CURSOR_FORBIDDEN: [[NSCursor operationNotAllowedCursor] set]; break; - case CURSOR_VSIZE: + case DisplayServerEnums::CURSOR_VSIZE: [_cursor_from_selector(@selector(_windowResizeNorthSouthCursor), @selector(resizeUpDownCursor)) set]; break; - case CURSOR_HSIZE: + case DisplayServerEnums::CURSOR_HSIZE: [_cursor_from_selector(@selector(_windowResizeEastWestCursor), @selector(resizeLeftRightCursor)) set]; break; - case CURSOR_BDIAGSIZE: + case DisplayServerEnums::CURSOR_BDIAGSIZE: [_cursor_from_selector(@selector(_windowResizeNorthEastSouthWestCursor)) set]; break; - case CURSOR_FDIAGSIZE: + case DisplayServerEnums::CURSOR_FDIAGSIZE: [_cursor_from_selector(@selector(_windowResizeNorthWestSouthEastCursor)) set]; break; - case CURSOR_MOVE: + case DisplayServerEnums::CURSOR_MOVE: [[[GodotCoreCursor alloc] initWithType:GDCoreCursorWindowMove] set]; break; - case CURSOR_VSPLIT: + case DisplayServerEnums::CURSOR_VSPLIT: [[NSCursor resizeUpDownCursor] set]; break; - case CURSOR_HSPLIT: + case DisplayServerEnums::CURSOR_HSPLIT: [[NSCursor resizeLeftRightCursor] set]; break; - case CURSOR_HELP: + case DisplayServerEnums::CURSOR_HELP: [_cursor_from_selector(@selector(_helpCursor)) set]; break; default: { @@ -2938,10 +2938,10 @@ } } -void DisplayServerMacOS::cursor_set_shape(CursorShape p_shape) { +void DisplayServerMacOS::cursor_set_shape(DisplayServerEnums::CursorShape p_shape) { _THREAD_SAFE_METHOD_ - ERR_FAIL_INDEX(p_shape, CURSOR_MAX); + ERR_FAIL_INDEX(p_shape, DisplayServerEnums::CURSOR_MAX); if (cursor_shape == p_shape) { return; @@ -2949,20 +2949,20 @@ cursor_shape = p_shape; - if (mouse_mode != MOUSE_MODE_VISIBLE && mouse_mode != MOUSE_MODE_CONFINED) { + if (mouse_mode != DisplayServerEnums::MOUSE_MODE_VISIBLE && mouse_mode != DisplayServerEnums::MOUSE_MODE_CONFINED) { return; } cursor_update_shape(); } -void DisplayServerMacOS::cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) { +void DisplayServerMacOS::cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape, const Vector2 &p_hotspot) { _THREAD_SAFE_METHOD_ - ERR_FAIL_INDEX(p_shape, CURSOR_MAX); + ERR_FAIL_INDEX(p_shape, DisplayServerEnums::CURSOR_MAX); if (p_cursor.is_valid()) { - HashMap>::Iterator cursor_c = cursors_cache.find(p_shape); + HashMap>::Iterator cursor_c = cursors_cache.find(p_shape); if (cursor_c) { if (cursor_c->value[0] == p_cursor && cursor_c->value[1] == p_hotspot) { @@ -3019,7 +3019,7 @@ cursors_cache.insert(p_shape, params); if (p_shape == cursor_shape) { - if (mouse_mode == MOUSE_MODE_VISIBLE || mouse_mode == MOUSE_MODE_CONFINED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_VISIBLE || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED) { [cursor set]; } } @@ -3048,7 +3048,7 @@ ERR_FAIL_V(m_retval); \ } -uint32_t DisplayServerMacOS::window_get_display_id(WindowID p_window) const { +uint32_t DisplayServerMacOS::window_get_display_id(DisplayServerEnums::WindowID p_window) const { const WindowData *wd; GET_OR_FAIL_V(wd, windows, p_window, -1); return wd->display_id; @@ -3075,7 +3075,7 @@ #ifdef TOOLS_ENABLED -Error DisplayServerMacOS::embed_process_update(WindowID p_window, EmbeddedProcessMacOS *p_process) { +Error DisplayServerMacOS::embed_process_update(DisplayServerEnums::WindowID p_window, EmbeddedProcessMacOS *p_process) { _THREAD_SAFE_METHOD_ WindowData *wd; @@ -3180,7 +3180,7 @@ _THREAD_SAFE_LOCK_ - for (KeyValue &E : windows) { + for (KeyValue &E : windows) { WindowData &wd = E.value; if (wd.mpass) { if (![wd.window_object ignoresMouseEvents]) { @@ -3313,7 +3313,7 @@ } } -DisplayServer::IndicatorID DisplayServerMacOS::create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback) { +DisplayServerEnums::IndicatorID DisplayServerMacOS::create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback) { NSImage *nsimg = nullptr; if (p_icon.is_valid() && p_icon->get_width() > 0 && p_icon->get_height() > 0 && p_icon->get_image().is_valid()) { Ref img = p_icon->get_image(); @@ -3339,13 +3339,13 @@ [item.button sendActionOn:(NSEventMaskLeftMouseDown | NSEventMaskRightMouseDown | NSEventMaskOtherMouseDown)]; item.button.toolTip = [NSString stringWithUTF8String:p_tooltip.utf8().get_data()]; - IndicatorID iid = indicator_id_counter++; + DisplayServerEnums::IndicatorID iid = indicator_id_counter++; indicators[iid] = idat; return iid; } -void DisplayServerMacOS::status_indicator_set_icon(IndicatorID p_id, const Ref &p_icon) { +void DisplayServerMacOS::status_indicator_set_icon(DisplayServerEnums::IndicatorID p_id, const Ref &p_icon) { ERR_FAIL_COND(!indicators.has(p_id)); NSImage *nsimg = nullptr; @@ -3362,14 +3362,14 @@ item.button.image = nsimg; } -void DisplayServerMacOS::status_indicator_set_tooltip(IndicatorID p_id, const String &p_tooltip) { +void DisplayServerMacOS::status_indicator_set_tooltip(DisplayServerEnums::IndicatorID p_id, const String &p_tooltip) { ERR_FAIL_COND(!indicators.has(p_id)); NSStatusItem *item = indicators[p_id].item; item.button.toolTip = [NSString stringWithUTF8String:p_tooltip.utf8().get_data()]; } -void DisplayServerMacOS::status_indicator_set_menu(IndicatorID p_id, const RID &p_menu_rid) { +void DisplayServerMacOS::status_indicator_set_menu(DisplayServerEnums::IndicatorID p_id, const RID &p_menu_rid) { ERR_FAIL_COND(!indicators.has(p_id)); NSStatusItem *item = indicators[p_id].item; @@ -3381,13 +3381,13 @@ } } -void DisplayServerMacOS::status_indicator_set_callback(IndicatorID p_id, const Callable &p_callback) { +void DisplayServerMacOS::status_indicator_set_callback(DisplayServerEnums::IndicatorID p_id, const Callable &p_callback) { ERR_FAIL_COND(!indicators.has(p_id)); [indicators[p_id].delegate setCallback:p_callback]; } -Rect2 DisplayServerMacOS::status_indicator_get_rect(IndicatorID p_id) const { +Rect2 DisplayServerMacOS::status_indicator_get_rect(DisplayServerEnums::IndicatorID p_id) const { ERR_FAIL_COND_V(!indicators.has(p_id), Rect2()); NSStatusItem *item = indicators[p_id].item; @@ -3411,7 +3411,7 @@ return rect; } -void DisplayServerMacOS::delete_status_indicator(IndicatorID p_id) { +void DisplayServerMacOS::delete_status_indicator(DisplayServerEnums::IndicatorID p_id) { ERR_FAIL_COND(!indicators.has(p_id)); [[NSStatusBar systemStatusBar] removeStatusItem:indicators[p_id].item]; @@ -3427,7 +3427,7 @@ return OS::get_singleton()->is_layered_allowed(); } -DisplayServer *DisplayServerMacOS::create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServer *DisplayServerMacOS::create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { DisplayServer *ds = memnew(DisplayServerMacOS(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_position, p_resolution, p_screen, p_context, p_parent_window, r_error)); if (r_error != OK) { if (p_rendering_driver == "vulkan") { @@ -3476,16 +3476,16 @@ register_create_function("macos", create_func, get_rendering_drivers_func); } -DisplayServer::WindowID DisplayServerMacOS::window_get_active_popup() const { - const List::Element *E = popup_list.back(); +DisplayServerEnums::WindowID DisplayServerMacOS::window_get_active_popup() const { + const List::Element *E = popup_list.back(); if (E) { return E->get(); } else { - return INVALID_WINDOW_ID; + return DisplayServerEnums::INVALID_WINDOW_ID; } } -void DisplayServerMacOS::window_set_popup_safe_rect(WindowID p_window, const Rect2i &p_rect) { +void DisplayServerMacOS::window_set_popup_safe_rect(DisplayServerEnums::WindowID p_window, const Rect2i &p_rect) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -3493,7 +3493,7 @@ wd.parent_safe_rect = p_rect; } -Rect2i DisplayServerMacOS::window_get_popup_safe_rect(WindowID p_window) const { +Rect2i DisplayServerMacOS::window_get_popup_safe_rect(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Rect2i()); @@ -3501,14 +3501,14 @@ return wd.parent_safe_rect; } -void DisplayServerMacOS::popup_open(WindowID p_window) { +void DisplayServerMacOS::popup_open(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ bool has_popup_ancestor = false; - WindowID transient_root = p_window; + DisplayServerEnums::WindowID transient_root = p_window; while (true) { - WindowID parent = windows[transient_root].transient_parent; - if (parent == INVALID_WINDOW_ID) { + DisplayServerEnums::WindowID parent = windows[transient_root].transient_parent; + if (parent == DisplayServerEnums::INVALID_WINDOW_ID) { break; } else { transient_root = parent; @@ -3520,16 +3520,16 @@ } // Detect tooltips and other similar popups that shouldn't block input to their parent. - bool ignores_input = window_get_flag(WINDOW_FLAG_NO_FOCUS, p_window) && window_get_flag(WINDOW_FLAG_MOUSE_PASSTHROUGH, p_window); + bool ignores_input = window_get_flag(DisplayServerEnums::WINDOW_FLAG_NO_FOCUS, p_window) && window_get_flag(DisplayServerEnums::WINDOW_FLAG_MOUSE_PASSTHROUGH, p_window); WindowData &wd = windows[p_window]; if (wd.is_popup || (has_popup_ancestor && !ignores_input)) { bool was_empty = popup_list.is_empty(); // Find current popup parent, or root popup if new window is not transient. - List::Element *C = nullptr; - List::Element *E = popup_list.back(); + List::Element *C = nullptr; + List::Element *E = popup_list.back(); while (E) { - if (wd.transient_parent != E->get() || wd.transient_parent == INVALID_WINDOW_ID) { + if (wd.transient_parent != E->get() || wd.transient_parent == DisplayServerEnums::INVALID_WINDOW_ID) { C = E; E = E->prev(); } else { @@ -3537,7 +3537,7 @@ } } if (C) { - send_window_event(windows[C->get()], DisplayServerMacOS::WINDOW_EVENT_CLOSE_REQUEST); + send_window_event(windows[C->get()], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); } if (was_empty && popup_list.is_empty()) { @@ -3549,19 +3549,19 @@ } } -void DisplayServerMacOS::popup_close(WindowID p_window) { +void DisplayServerMacOS::popup_close(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ bool was_empty = popup_list.is_empty(); - List::Element *E = popup_list.find(p_window); + List::Element *E = popup_list.find(p_window); while (E) { - List::Element *F = E->next(); - WindowID win_id = E->get(); + List::Element *F = E->next(); + DisplayServerEnums::WindowID win_id = E->get(); popup_list.erase(E); if (win_id != p_window) { // Only request close on related windows, not this window. We are already processing it. - send_window_event(windows[win_id], DisplayServerMacOS::WINDOW_EVENT_CLOSE_REQUEST); + send_window_event(windows[win_id], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); } E = F; } @@ -3578,9 +3578,9 @@ bool closed = false; if (p_close) { // Close all popups. - List::Element *E = popup_list.front(); + List::Element *E = popup_list.front(); if (E) { - send_window_event(windows[E->get()], DisplayServerMacOS::WINDOW_EVENT_CLOSE_REQUEST); + send_window_event(windows[E->get()], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); closed = true; } if (!was_empty) { @@ -3594,8 +3594,8 @@ } Point2i pos = mouse_get_position(); - List::Element *C = nullptr; - List::Element *E = popup_list.back(); + List::Element *C = nullptr; + List::Element *E = popup_list.back(); // Find top popup to close. while (E) { // Popup window area. @@ -3612,7 +3612,7 @@ } } if (C) { - send_window_event(windows[C->get()], DisplayServerMacOS::WINDOW_EVENT_CLOSE_REQUEST); + send_window_event(windows[C->get()], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); closed = true; } if (!was_empty && popup_list.is_empty()) { @@ -3623,7 +3623,7 @@ return closed; } -DisplayServerMacOS::DisplayServerMacOS(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServerMacOS::DisplayServerMacOS(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { Input::get_singleton()->set_event_dispatch_function(_dispatch_input_events); r_error = OK; @@ -3820,18 +3820,18 @@ if (p_position != nullptr) { window_position = *p_position; } else { - if (p_screen == SCREEN_OF_MAIN_WINDOW) { - p_screen = SCREEN_PRIMARY; + if (p_screen == DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) { + p_screen = DisplayServerEnums::SCREEN_PRIMARY; } Rect2i scr_rect = screen_get_usable_rect(p_screen); window_position = scr_rect.position + (scr_rect.size - p_resolution) / 2; } - WindowID main_window = _create_window(p_mode, p_vsync_mode, Rect2i(window_position, p_resolution)); - ERR_FAIL_COND(main_window == INVALID_WINDOW_ID); - for (int i = 0; i < WINDOW_FLAG_MAX; i++) { + DisplayServerEnums::WindowID main_window = _create_window(p_mode, p_vsync_mode, Rect2i(window_position, p_resolution)); + ERR_FAIL_COND(main_window == DisplayServerEnums::INVALID_WINDOW_ID); + for (int i = 0; i < DisplayServerEnums::WINDOW_FLAG_MAX; i++) { if (p_flags & (1 << i)) { - window_set_flag(WindowFlags(i), true, main_window); + window_set_flag(DisplayServerEnums::WindowFlags(i), true, main_window); } } force_process_and_drop_events(); @@ -3860,8 +3860,8 @@ #if defined(RD_ENABLED) if (rendering_context) { rendering_device = memnew(RenderingDevice); - rendering_device->initialize(rendering_context, MAIN_WINDOW_ID); - rendering_device->screen_create(MAIN_WINDOW_ID); + rendering_device->initialize(rendering_context, DisplayServerEnums::MAIN_WINDOW_ID); + rendering_device->screen_create(DisplayServerEnums::MAIN_WINDOW_ID); RendererCompositorRD::make_current(); } @@ -3870,7 +3870,7 @@ DisplayServerMacOS::~DisplayServerMacOS() { // Destroy all status indicators. - for (HashMap::Iterator E = indicators.begin(); E; ++E) { + for (HashMap::Iterator E = indicators.begin(); E; ++E) { [[NSStatusBar systemStatusBar] removeStatusItem:E->value.item]; } @@ -3881,8 +3881,8 @@ } // Destroy all windows. - for (HashMap::Iterator E = windows.begin(); E;) { - HashMap::Iterator F = E; + for (HashMap::Iterator E = windows.begin(); E;) { + HashMap::Iterator F = E; ++E; [F->value.window_object setContentView:nil]; [F->value.window_object close]; diff --git a/platform/macos/display_server_macos_base.h b/platform/macos/display_server_macos_base.h index eb7a0e3e50f0..2d53766129f0 100644 --- a/platform/macos/display_server_macos_base.h +++ b/platform/macos/display_server_macos_base.h @@ -73,18 +73,18 @@ class DisplayServerMacOSBase : public DisplayServer { protected: _THREAD_SAFE_CLASS_ - MouseMode mouse_mode = MOUSE_MODE_VISIBLE; - MouseMode mouse_mode_base = MOUSE_MODE_VISIBLE; - MouseMode mouse_mode_override = MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode = DisplayServerEnums::MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode_base = DisplayServerEnums::MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode_override = DisplayServerEnums::MOUSE_MODE_VISIBLE; bool mouse_mode_override_enabled = false; void _mouse_update_mode(); - virtual void _mouse_apply_mode(MouseMode p_prev_mode, MouseMode p_new_mode) = 0; + virtual void _mouse_apply_mode(DisplayServerEnums::MouseMode p_prev_mode, DisplayServerEnums::MouseMode p_new_mode) = 0; String im_text; Point2i im_selection; - CursorShape cursor_shape = CURSOR_ARROW; + DisplayServerEnums::CursorShape cursor_shape = DisplayServerEnums::CURSOR_ARROW; void initialize_tts() const; @@ -98,11 +98,11 @@ class DisplayServerMacOSBase : public DisplayServer { RenderingDevice *rendering_device = nullptr; #endif - virtual HDROutput &_get_hdr_output(WindowID p_window) = 0; - virtual const HDROutput &_get_hdr_output(WindowID p_window) const = 0; + virtual HDROutput &_get_hdr_output(DisplayServerEnums::WindowID p_window) = 0; + virtual const HDROutput &_get_hdr_output(DisplayServerEnums::WindowID p_window) const = 0; constexpr float _calculate_current_reference_luminance(CGFloat p_max_potential_edr_value, CGFloat p_max_edr_value) const; - void _update_hdr_output(WindowID p_window, const HDROutput &p_hdr); + void _update_hdr_output(DisplayServerEnums::WindowID p_window, const HDROutput &p_hdr); public: virtual bool tts_is_speaking() const override; @@ -121,10 +121,10 @@ class DisplayServerMacOSBase : public DisplayServer { virtual Color get_base_color() const override; virtual void set_system_theme_change_callback(const Callable &p_callable) override; - virtual void mouse_set_mode(MouseMode p_mode) override; - virtual MouseMode mouse_get_mode() const override; - virtual void mouse_set_mode_override(MouseMode p_mode) override; - virtual MouseMode mouse_get_mode_override() const override; + virtual void mouse_set_mode(DisplayServerEnums::MouseMode p_mode) override; + virtual DisplayServerEnums::MouseMode mouse_get_mode() const override; + virtual void mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) override; + virtual DisplayServerEnums::MouseMode mouse_get_mode_override() const override; virtual void mouse_set_mode_override_enabled(bool p_override_enabled) override; virtual bool mouse_is_mode_override_enabled() const override; @@ -135,7 +135,7 @@ class DisplayServerMacOSBase : public DisplayServer { virtual bool clipboard_has_image() const override; virtual int get_primary_screen() const override; - virtual float screen_get_refresh_rate(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_refresh_rate(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; virtual void screen_set_keep_on(bool p_enable) override; virtual bool screen_is_kept_on() const override; @@ -148,7 +148,7 @@ class DisplayServerMacOSBase : public DisplayServer { virtual Point2i ime_get_selection() const override; virtual String ime_get_text() const override; - virtual CursorShape cursor_get_shape() const override; + virtual DisplayServerEnums::CursorShape cursor_get_shape() const override; virtual void beep() const override; @@ -161,21 +161,21 @@ class DisplayServerMacOSBase : public DisplayServer { virtual Key keyboard_get_label_from_physical(Key p_keycode) const override; virtual void show_emoji_and_symbol_picker() const override; - virtual void window_get_edr_values(WindowID p_window, CGFloat *r_max_potential_edr_value = nullptr, CGFloat *r_max_edr_value = nullptr) const = 0; - virtual bool window_is_hdr_output_supported(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_request_hdr_output(const bool p_enable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_is_hdr_output_requested(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual bool window_is_hdr_output_enabled(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_get_edr_values(DisplayServerEnums::WindowID p_window, CGFloat *r_max_potential_edr_value = nullptr, CGFloat *r_max_edr_value = nullptr) const = 0; + virtual bool window_is_hdr_output_supported(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_request_hdr_output(const bool p_enable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_is_hdr_output_requested(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual bool window_is_hdr_output_enabled(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_hdr_output_reference_luminance(const float p_reference_luminance, WindowID p_window = MAIN_WINDOW_ID) override; - virtual float window_get_hdr_output_reference_luminance(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual float window_get_hdr_output_current_reference_luminance(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_hdr_output_reference_luminance(const float p_reference_luminance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual float window_get_hdr_output_reference_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual float window_get_hdr_output_current_reference_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_hdr_output_max_luminance(const float p_max_luminance, WindowID p_window = MAIN_WINDOW_ID) override; - virtual float window_get_hdr_output_max_luminance(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual float window_get_hdr_output_current_max_luminance(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_hdr_output_max_luminance(const float p_max_luminance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual float window_get_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual float window_get_hdr_output_current_max_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual float window_get_output_max_linear_value(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual float window_get_output_max_linear_value(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; DisplayServerMacOSBase(); ~DisplayServerMacOSBase(); diff --git a/platform/macos/display_server_macos_base.mm b/platform/macos/display_server_macos_base.mm index 076ee8f6703b..22d180e37021 100644 --- a/platform/macos/display_server_macos_base.mm +++ b/platform/macos/display_server_macos_base.mm @@ -45,7 +45,7 @@ #import void DisplayServerMacOSBase::_mouse_update_mode() { - MouseMode wanted_mouse_mode = mouse_mode_override_enabled + DisplayServerEnums::MouseMode wanted_mouse_mode = mouse_mode_override_enabled ? mouse_mode_override : mouse_mode_base; @@ -53,13 +53,13 @@ return; } - MouseMode prev_mode = mouse_mode; + DisplayServerEnums::MouseMode prev_mode = mouse_mode; mouse_mode = wanted_mouse_mode; _mouse_apply_mode(prev_mode, wanted_mouse_mode); } -void DisplayServerMacOSBase::mouse_set_mode(MouseMode p_mode) { - ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); +void DisplayServerMacOSBase::mouse_set_mode(DisplayServerEnums::MouseMode p_mode) { + ERR_FAIL_INDEX(p_mode, DisplayServerEnums::MouseMode::MOUSE_MODE_MAX); if (p_mode == mouse_mode_base) { return; } @@ -67,12 +67,12 @@ _mouse_update_mode(); } -DisplayServer::MouseMode DisplayServerMacOSBase::mouse_get_mode() const { +DisplayServerEnums::MouseMode DisplayServerMacOSBase::mouse_get_mode() const { return mouse_mode; } -void DisplayServerMacOSBase::mouse_set_mode_override(MouseMode p_mode) { - ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); +void DisplayServerMacOSBase::mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) { + ERR_FAIL_INDEX(p_mode, DisplayServerEnums::MouseMode::MOUSE_MODE_MAX); if (p_mode == mouse_mode_override) { return; } @@ -80,7 +80,7 @@ _mouse_update_mode(); } -DisplayServer::MouseMode DisplayServerMacOSBase::mouse_get_mode_override() const { +DisplayServerEnums::MouseMode DisplayServerMacOSBase::mouse_get_mode_override() const { return mouse_mode_override; } @@ -500,7 +500,7 @@ return im_text; } -DisplayServer::CursorShape DisplayServerMacOSBase::cursor_get_shape() const { +DisplayServerEnums::CursorShape DisplayServerMacOSBase::cursor_get_shape() const { return cursor_shape; } @@ -543,7 +543,7 @@ // MARK: - HDR / EDR -void DisplayServerMacOSBase::_update_hdr_output(WindowID p_window, const HDROutput &p_hdr) { +void DisplayServerMacOSBase::_update_hdr_output(DisplayServerEnums::WindowID p_window, const HDROutput &p_hdr) { #ifdef RD_ENABLED if (!rendering_context) { return; @@ -565,7 +565,7 @@ #endif } -bool DisplayServerMacOSBase::window_is_hdr_output_supported(WindowID p_window) const { +bool DisplayServerMacOSBase::window_is_hdr_output_supported(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) @@ -578,7 +578,7 @@ return max_potential_edr > 1.0f; } -void DisplayServerMacOSBase::window_request_hdr_output(const bool p_enabled, WindowID p_window) { +void DisplayServerMacOSBase::window_request_hdr_output(const bool p_enabled, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) @@ -590,13 +590,13 @@ _update_hdr_output(p_window, hdr); } -bool DisplayServerMacOSBase::window_is_hdr_output_requested(WindowID p_window) const { +bool DisplayServerMacOSBase::window_is_hdr_output_requested(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ return _get_hdr_output(p_window).requested; } -bool DisplayServerMacOSBase::window_is_hdr_output_enabled(WindowID p_window) const { +bool DisplayServerMacOSBase::window_is_hdr_output_enabled(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) @@ -608,11 +608,11 @@ return false; } -void DisplayServerMacOSBase::window_set_hdr_output_reference_luminance(const float p_reference_luminance, WindowID p_window) { +void DisplayServerMacOSBase::window_set_hdr_output_reference_luminance(const float p_reference_luminance, DisplayServerEnums::WindowID p_window) { ERR_PRINT_ONCE("Manually setting reference white luminance is not supported on Apple devices, as they provide a user-facing brightness setting that directly controls reference white luminance."); } -float DisplayServerMacOSBase::window_get_hdr_output_reference_luminance(WindowID p_window) const { +float DisplayServerMacOSBase::window_get_hdr_output_reference_luminance(DisplayServerEnums::WindowID p_window) const { return -1.0f; // Always auto-adjusted by the OS on Apple platforms. } @@ -620,7 +620,7 @@ return (p_max_potential_edr_value * HARDWARE_REFERENCE_LUMINANCE_NITS) / p_max_edr_value; } -float DisplayServerMacOSBase::window_get_hdr_output_current_reference_luminance(WindowID p_window) const { +float DisplayServerMacOSBase::window_get_hdr_output_current_reference_luminance(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) @@ -631,7 +631,7 @@ return 200.0f; } -void DisplayServerMacOSBase::window_set_hdr_output_max_luminance(const float p_max_luminance, WindowID p_window) { +void DisplayServerMacOSBase::window_set_hdr_output_max_luminance(const float p_max_luminance, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ HDROutput &hdr = _get_hdr_output(p_window); @@ -643,13 +643,13 @@ _update_hdr_output(p_window, hdr); } -float DisplayServerMacOSBase::window_get_hdr_output_max_luminance(WindowID p_window) const { +float DisplayServerMacOSBase::window_get_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ return _get_hdr_output(p_window).max_luminance; } -float DisplayServerMacOSBase::window_get_hdr_output_current_max_luminance(WindowID p_window) const { +float DisplayServerMacOSBase::window_get_hdr_output_current_max_luminance(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ const HDROutput &hdr = _get_hdr_output(p_window); @@ -661,7 +661,7 @@ return hdr.max_luminance; } -float DisplayServerMacOSBase::window_get_output_max_linear_value(WindowID p_window) const { +float DisplayServerMacOSBase::window_get_output_max_linear_value(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) diff --git a/platform/macos/display_server_macos_embedded.h b/platform/macos/display_server_macos_embedded.h index 7072e8991b8f..3e91d58f091e 100644 --- a/platform/macos/display_server_macos_embedded.h +++ b/platform/macos/display_server_macos_embedded.h @@ -70,14 +70,14 @@ class DisplayServerMacOSEmbedded : public DisplayServerMacOSBase { NativeMenu *native_menu = nullptr; - HashMap window_attached_instance_id; + HashMap window_attached_instance_id; - HashMap window_event_callbacks; - HashMap window_resize_callbacks; - HashMap input_event_callbacks; - HashMap input_text_callbacks; + HashMap window_event_callbacks; + HashMap window_resize_callbacks; + HashMap input_event_callbacks; + HashMap input_text_callbacks; - WindowID window_id_counter = MAIN_WINDOW_ID; + DisplayServerEnums::WindowID window_id_counter = DisplayServerEnums::MAIN_WINDOW_ID; bool transparent = false; @@ -92,12 +92,12 @@ class DisplayServerMacOSEmbedded : public DisplayServerMacOSBase { HDROutput hdr_output; - HDROutput &_get_hdr_output(WindowID p_window) override; - const HDROutput &_get_hdr_output(WindowID p_window) const override; + HDROutput &_get_hdr_output(DisplayServerEnums::WindowID p_window) override; + const HDROutput &_get_hdr_output(DisplayServerEnums::WindowID p_window) const override; Point2i ime_last_position; - void _mouse_apply_mode(MouseMode p_prev_mode, MouseMode p_new_mode) override; + void _mouse_apply_mode(DisplayServerEnums::MouseMode p_prev_mode, DisplayServerEnums::MouseMode p_new_mode) override; struct Joy { String name; @@ -111,25 +111,25 @@ class DisplayServerMacOSEmbedded : public DisplayServerMacOSBase { public: static void register_embedded_driver(); - static DisplayServer *create_func(const String &p_rendering_driver, WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + static DisplayServer *create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); static Vector get_rendering_drivers_func(); - void _window_set_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID); + void _window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID); // MARK: - Events virtual void process_events() override; - virtual void window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_window_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_text_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_drop_files_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; static void _dispatch_input_events(const Ref &p_event); - void send_input_event(const Ref &p_event, DisplayServer::WindowID p_id = MAIN_WINDOW_ID) const; - void send_input_text(const String &p_text, DisplayServer::WindowID p_id = MAIN_WINDOW_ID) const; - void send_window_event(DisplayServer::WindowEvent p_event, DisplayServer::WindowID p_id = MAIN_WINDOW_ID) const; + void send_input_event(const Ref &p_event, DisplayServerEnums::WindowID p_id = DisplayServerEnums::MAIN_WINDOW_ID) const; + void send_input_text(const String &p_text, DisplayServerEnums::WindowID p_id = DisplayServerEnums::MAIN_WINDOW_ID) const; + void send_window_event(DisplayServerEnums::WindowEvent p_event, DisplayServerEnums::WindowID p_id = DisplayServerEnums::MAIN_WINDOW_ID) const; void _window_callback(const Callable &p_callable, const Variant &p_arg) const; // MARK: - Mouse @@ -139,78 +139,78 @@ class DisplayServerMacOSEmbedded : public DisplayServerMacOSBase { // MARK: - Window - virtual bool has_feature(Feature p_feature) const override; + virtual bool has_feature(DisplayServerEnums::Feature p_feature) const override; virtual String get_name() const override; virtual int get_screen_count() const override; - virtual Point2i screen_get_position(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Size2i screen_get_size(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Rect2i screen_get_usable_rect(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual int screen_get_dpi(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_scale(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Vector get_window_list() const override; + virtual Point2i screen_get_position(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Size2i screen_get_size(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Rect2i screen_get_usable_rect(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual int screen_get_dpi(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_scale(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Vector get_window_list() const override; - virtual WindowID get_window_at_screen_position(const Point2i &p_position) const override; + virtual DisplayServerEnums::WindowID get_window_at_screen_position(const Point2i &p_position) const override; - virtual void window_attach_instance_id(ObjectID p_instance, WindowID p_window = MAIN_WINDOW_ID) override; - virtual ObjectID window_get_attached_instance_id(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual ObjectID window_get_attached_instance_id(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_title(const String &p_title, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual int window_get_current_screen(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_current_screen(int p_screen, WindowID p_window = MAIN_WINDOW_ID) override; + virtual int window_get_current_screen(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual Point2i window_get_position(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Point2i window_get_position_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_position(const Point2i &p_position, WindowID p_window = MAIN_WINDOW_ID) override; + virtual Point2i window_get_position(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Point2i window_get_position_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_transient(WindowID p_window, WindowID p_parent) override; + virtual void window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) override; - virtual void window_set_max_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_max_size(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_max_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_min_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_min_size(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_min_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_size(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Size2i window_get_size_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Size2i window_get_size_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_mode(WindowMode p_mode, WindowID p_window = MAIN_WINDOW_ID) override; - virtual WindowMode window_get_mode(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::WindowMode window_get_mode(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual bool window_is_maximize_allowed(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_is_maximize_allowed(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_get_flag(WindowFlags p_flag, WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_request_attention(WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_taskbar_progress_value(float p_value, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_taskbar_progress_state(ProgressState p_state, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_move_to_foreground(WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_is_focused(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_request_attention(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_taskbar_progress_value(float p_value, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_taskbar_progress_state(DisplayServerEnums::ProgressState p_state, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_move_to_foreground(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_is_focused(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; virtual float screen_get_max_scale() const override; - virtual bool window_can_draw(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_can_draw(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; virtual bool can_any_window_draw() const override; - virtual void window_set_ime_active(const bool p_active, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_ime_position(const Point2i &p_pos, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window = MAIN_WINDOW_ID) override; - virtual DisplayServer::VSyncMode window_get_vsync_mode(WindowID p_vsync_mode) const override; + virtual void window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::VSyncMode window_get_vsync_mode(DisplayServerEnums::WindowID p_vsync_mode) const override; - virtual void cursor_set_shape(CursorShape p_shape) override; - virtual void cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape = CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()) override; + virtual void cursor_set_shape(DisplayServerEnums::CursorShape p_shape) override; + virtual void cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape = DisplayServerEnums::CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()) override; - void window_get_edr_values(WindowID p_window, CGFloat *r_max_potential_edr_value, CGFloat *r_max_edr_value) const override; + void window_get_edr_values(DisplayServerEnums::WindowID p_window, CGFloat *r_max_potential_edr_value, CGFloat *r_max_edr_value) const override; void update_screen_parameters(); void set_state(const DisplayServerMacOSEmbeddedState &p_state); virtual void swap_buffers() override; - DisplayServerMacOSEmbedded(const String &p_rendering_driver, DisplayServer::WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, Error &r_error); + DisplayServerMacOSEmbedded(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, Error &r_error); ~DisplayServerMacOSEmbedded(); }; diff --git a/platform/macos/display_server_macos_embedded.mm b/platform/macos/display_server_macos_embedded.mm index 4f9062ad6168..a3decfe4ddf3 100644 --- a/platform/macos/display_server_macos_embedded.mm +++ b/platform/macos/display_server_macos_embedded.mm @@ -60,7 +60,7 @@ #import "core/os/main_loop.h" #import "servers/display/native_menu.h" -DisplayServerMacOSEmbedded::DisplayServerMacOSEmbedded(const String &p_rendering_driver, WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, Error &r_error) { +DisplayServerMacOSEmbedded::DisplayServerMacOSEmbedded(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, Error &r_error) { EmbeddedDebugger::initialize(this); r_error = OK; // default to OK @@ -139,7 +139,7 @@ if (err != OK) { ERR_FAIL_MSG("Could not create OpenGL context."); } - gl_manager->set_vsync_enabled(p_vsync_mode != DisplayServer::VSYNC_DISABLED); + gl_manager->set_vsync_enabled(p_vsync_mode != DisplayServerEnums::VSYNC_DISABLED); } #endif @@ -186,8 +186,8 @@ #if defined(RD_ENABLED) if (rendering_context) { rendering_device = memnew(RenderingDevice); - rendering_device->initialize(rendering_context, MAIN_WINDOW_ID); - rendering_device->screen_create(MAIN_WINDOW_ID); + rendering_device->initialize(rendering_context, DisplayServerEnums::MAIN_WINDOW_ID); + rendering_device->screen_create(DisplayServerEnums::MAIN_WINDOW_ID); RendererCompositorRD::make_current(); } @@ -197,7 +197,7 @@ layer.contentsScale = scale; layer.magnificationFilter = kCAFilterNearest; layer.minificationFilter = kCAFilterNearest; - transparent = ((p_flags & WINDOW_FLAG_TRANSPARENT_BIT) == WINDOW_FLAG_TRANSPARENT_BIT); + transparent = ((p_flags & DisplayServerEnums::WINDOW_FLAG_TRANSPARENT_BIT) == DisplayServerEnums::WINDOW_FLAG_TRANSPARENT_BIT); layer.opaque = !(OS::get_singleton()->is_layered_allowed() && transparent); layer.actions = @{ @"contents" : [NSNull null] }; // Disable implicit animations for contents. // AppKit frames, bounds and positions are always in points. @@ -243,7 +243,7 @@ #endif } -DisplayServer *DisplayServerMacOSEmbedded::create_func(const String &p_rendering_driver, WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t /* p_parent_window */, Error &r_error) { +DisplayServer *DisplayServerMacOSEmbedded::create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t /* p_parent_window */, Error &r_error) { return memnew(DisplayServerMacOSEmbedded(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_position, p_resolution, p_screen, p_context, r_error)); } @@ -269,7 +269,7 @@ // MARK: - Mouse -void DisplayServerMacOSEmbedded::_mouse_apply_mode(MouseMode p_prev_mode, MouseMode p_new_mode) { +void DisplayServerMacOSEmbedded::_mouse_apply_mode(DisplayServerEnums::MouseMode p_prev_mode, DisplayServerEnums::MouseMode p_new_mode) { EngineDebugger::get_singleton()->send_message("game_view:mouse_set_mode", { p_new_mode }); } @@ -323,22 +323,22 @@ // MARK: Events -void DisplayServerMacOSEmbedded::window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { window_resize_callbacks[p_window] = p_callable; } -void DisplayServerMacOSEmbedded::window_set_window_event_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { window_event_callbacks[p_window] = p_callable; } -void DisplayServerMacOSEmbedded::window_set_input_event_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { input_event_callbacks[p_window] = p_callable; } -void DisplayServerMacOSEmbedded::window_set_input_text_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { input_text_callbacks[p_window] = p_callable; } -void DisplayServerMacOSEmbedded::window_set_drop_files_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { // Not supported } @@ -349,7 +349,7 @@ void DisplayServerMacOSEmbedded::_dispatch_input_events(const Ref &p_event) { Ref event_from_window = p_event; - WindowID window_id = INVALID_WINDOW_ID; + DisplayServerEnums::WindowID window_id = DisplayServerEnums::INVALID_WINDOW_ID; if (event_from_window.is_valid()) { window_id = event_from_window->get_window_id(); } @@ -357,27 +357,27 @@ ds->send_input_event(p_event, window_id); } -void DisplayServerMacOSEmbedded::send_input_event(const Ref &p_event, WindowID p_id) const { - if (p_id != INVALID_WINDOW_ID) { +void DisplayServerMacOSEmbedded::send_input_event(const Ref &p_event, DisplayServerEnums::WindowID p_id) const { + if (p_id != DisplayServerEnums::INVALID_WINDOW_ID) { const Callable *cb = input_event_callbacks.getptr(p_id); if (cb) { _window_callback(*cb, p_event); } } else { - for (const KeyValue &E : input_event_callbacks) { + for (const KeyValue &E : input_event_callbacks) { _window_callback(E.value, p_event); } } } -void DisplayServerMacOSEmbedded::send_input_text(const String &p_text, WindowID p_id) const { +void DisplayServerMacOSEmbedded::send_input_text(const String &p_text, DisplayServerEnums::WindowID p_id) const { const Callable *cb = input_text_callbacks.getptr(p_id); if (cb) { _window_callback(*cb, p_text); } } -void DisplayServerMacOSEmbedded::send_window_event(DisplayServer::WindowEvent p_event, WindowID p_id) const { +void DisplayServerMacOSEmbedded::send_window_event(DisplayServerEnums::WindowEvent p_event, DisplayServerEnums::WindowID p_id) const { const Callable *cb = window_event_callbacks.getptr(p_id); if (cb) { _window_callback(*cb, int(p_event)); @@ -392,30 +392,30 @@ // MARK: - -bool DisplayServerMacOSEmbedded::has_feature(Feature p_feature) const { +bool DisplayServerMacOSEmbedded::has_feature(DisplayServerEnums::Feature p_feature) const { switch (p_feature) { #ifndef DISABLE_DEPRECATED - case FEATURE_GLOBAL_MENU: { + case DisplayServerEnums::FEATURE_GLOBAL_MENU: { return (native_menu && native_menu->has_feature(NativeMenu::FEATURE_GLOBAL_MENU)); } break; #endif - case FEATURE_CURSOR_SHAPE: - case FEATURE_IME: - case FEATURE_CUSTOM_CURSOR_SHAPE: - // case FEATURE_HIDPI: - // case FEATURE_ICON: - // case FEATURE_MOUSE: - case FEATURE_HDR_OUTPUT: - case FEATURE_MOUSE_WARP: - // case FEATURE_NATIVE_DIALOG: - // case FEATURE_NATIVE_ICON: - // case FEATURE_WINDOW_TRANSPARENCY: - case FEATURE_CLIPBOARD: - // case FEATURE_KEEP_SCREEN_ON: - // case FEATURE_ORIENTATION: - // case FEATURE_VIRTUAL_KEYBOARD: - case FEATURE_TEXT_TO_SPEECH: - // case FEATURE_TOUCHSCREEN: + case DisplayServerEnums::FEATURE_CURSOR_SHAPE: + case DisplayServerEnums::FEATURE_IME: + case DisplayServerEnums::FEATURE_CUSTOM_CURSOR_SHAPE: + // case DisplayServerEnums::FEATURE_HIDPI: + // case DisplayServerEnums::FEATURE_ICON: + // case DisplayServerEnums::FEATURE_MOUSE: + case DisplayServerEnums::FEATURE_HDR_OUTPUT: + case DisplayServerEnums::FEATURE_MOUSE_WARP: + // case DisplayServerEnums::FEATURE_NATIVE_DIALOG: + // case DisplayServerEnums::FEATURE_NATIVE_ICON: + // case DisplayServerEnums::FEATURE_WINDOW_TRANSPARENCY: + case DisplayServerEnums::FEATURE_CLIPBOARD: + // case DisplayServerEnums::FEATURE_KEEP_SCREEN_ON: + // case DisplayServerEnums::FEATURE_ORIENTATION: + // case DisplayServerEnums::FEATURE_VIRTUAL_KEYBOARD: + case DisplayServerEnums::FEATURE_TEXT_TO_SPEECH: + // case DisplayServerEnums::FEATURE_TOUCHSCREEN: return true; default: return false; @@ -447,7 +447,7 @@ int screen_count = get_screen_count(); ERR_FAIL_INDEX_V(p_screen, screen_count, Size2i()); - return window_get_size(MAIN_WINDOW_ID); + return window_get_size(DisplayServerEnums::MAIN_WINDOW_ID); } Rect2i DisplayServerMacOSEmbedded::screen_get_usable_rect(int p_screen) const { @@ -474,10 +474,10 @@ _THREAD_SAFE_METHOD_ switch (p_screen) { - case SCREEN_WITH_MOUSE_FOCUS: - case SCREEN_WITH_KEYBOARD_FOCUS: - case SCREEN_PRIMARY: - case SCREEN_OF_MAIN_WINDOW: + case DisplayServerEnums::SCREEN_WITH_MOUSE_FOCUS: + case DisplayServerEnums::SCREEN_WITH_KEYBOARD_FOCUS: + case DisplayServerEnums::SCREEN_PRIMARY: + case DisplayServerEnums::SCREEN_OF_MAIN_WINDOW: case 0: return state.screen_window_scale; default: @@ -485,76 +485,76 @@ } } -Vector DisplayServerMacOSEmbedded::get_window_list() const { - Vector list; - list.push_back(MAIN_WINDOW_ID); +Vector DisplayServerMacOSEmbedded::get_window_list() const { + Vector list; + list.push_back(DisplayServerEnums::MAIN_WINDOW_ID); return list; } -DisplayServer::WindowID DisplayServerMacOSEmbedded::get_window_at_screen_position(const Point2i &p_position) const { - return MAIN_WINDOW_ID; +DisplayServerEnums::WindowID DisplayServerMacOSEmbedded::get_window_at_screen_position(const Point2i &p_position) const { + return DisplayServerEnums::MAIN_WINDOW_ID; } -void DisplayServerMacOSEmbedded::window_attach_instance_id(ObjectID p_instance, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window) { window_attached_instance_id[p_window] = p_instance; } -ObjectID DisplayServerMacOSEmbedded::window_get_attached_instance_id(WindowID p_window) const { +ObjectID DisplayServerMacOSEmbedded::window_get_attached_instance_id(DisplayServerEnums::WindowID p_window) const { return window_attached_instance_id[p_window]; } -void DisplayServerMacOSEmbedded::window_set_title(const String &p_title, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window) { // Not supported } -int DisplayServerMacOSEmbedded::window_get_current_screen(WindowID p_window) const { +int DisplayServerMacOSEmbedded::window_get_current_screen(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ - ERR_FAIL_COND_V(p_window != MAIN_WINDOW_ID, INVALID_SCREEN); + ERR_FAIL_COND_V(p_window != DisplayServerEnums::MAIN_WINDOW_ID, DisplayServerEnums::INVALID_SCREEN); return 0; } -void DisplayServerMacOSEmbedded::window_set_current_screen(int p_screen, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window) { // Not supported } -Point2i DisplayServerMacOSEmbedded::window_get_position(WindowID p_window) const { +Point2i DisplayServerMacOSEmbedded::window_get_position(DisplayServerEnums::WindowID p_window) const { return Point2i(); } -Point2i DisplayServerMacOSEmbedded::window_get_position_with_decorations(WindowID p_window) const { +Point2i DisplayServerMacOSEmbedded::window_get_position_with_decorations(DisplayServerEnums::WindowID p_window) const { return Point2i(); } -void DisplayServerMacOSEmbedded::window_set_position(const Point2i &p_position, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window) { // Probably not supported for single window iOS app } -void DisplayServerMacOSEmbedded::window_set_transient(WindowID p_window, WindowID p_parent) { +void DisplayServerMacOSEmbedded::window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) { // Not supported } -void DisplayServerMacOSEmbedded::window_set_max_size(const Size2i p_size, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { // Not supported } -Size2i DisplayServerMacOSEmbedded::window_get_max_size(WindowID p_window) const { +Size2i DisplayServerMacOSEmbedded::window_get_max_size(DisplayServerEnums::WindowID p_window) const { return Size2i(); } -void DisplayServerMacOSEmbedded::window_set_min_size(const Size2i p_size, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { // Not supported } -Size2i DisplayServerMacOSEmbedded::window_get_min_size(WindowID p_window) const { +Size2i DisplayServerMacOSEmbedded::window_get_min_size(DisplayServerEnums::WindowID p_window) const { return Size2i(); } -void DisplayServerMacOSEmbedded::window_set_size(const Size2i p_size, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { print_line("Embedded window can't be resized."); } -void DisplayServerMacOSEmbedded::_window_set_size(const Size2i p_size, WindowID p_window) { +void DisplayServerMacOSEmbedded::_window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { [CATransaction begin]; [CATransaction setDisableActions:YES]; @@ -583,7 +583,7 @@ } } -Size2i DisplayServerMacOSEmbedded::window_get_size(WindowID p_window) const { +Size2i DisplayServerMacOSEmbedded::window_get_size(DisplayServerEnums::WindowID p_window) const { #if defined(RD_ENABLED) if (rendering_context) { RenderingContextDriver::SurfaceID surface = rendering_context->surface_get_from_window(p_window); @@ -601,53 +601,53 @@ return Size2i(); } -Size2i DisplayServerMacOSEmbedded::window_get_size_with_decorations(WindowID p_window) const { +Size2i DisplayServerMacOSEmbedded::window_get_size_with_decorations(DisplayServerEnums::WindowID p_window) const { return window_get_size(p_window); } -void DisplayServerMacOSEmbedded::window_set_mode(WindowMode p_mode, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window) { // Not supported } -DisplayServer::WindowMode DisplayServerMacOSEmbedded::window_get_mode(WindowID p_window) const { - return WindowMode::WINDOW_MODE_WINDOWED; +DisplayServerEnums::WindowMode DisplayServerMacOSEmbedded::window_get_mode(DisplayServerEnums::WindowID p_window) const { + return DisplayServerEnums::WindowMode::WINDOW_MODE_WINDOWED; } -bool DisplayServerMacOSEmbedded::window_is_maximize_allowed(WindowID p_window) const { +bool DisplayServerMacOSEmbedded::window_is_maximize_allowed(DisplayServerEnums::WindowID p_window) const { return false; } -void DisplayServerMacOSEmbedded::window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window) { - if (p_flag == WINDOW_FLAG_TRANSPARENT && p_window == MAIN_WINDOW_ID) { +void DisplayServerMacOSEmbedded::window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window) { + if (p_flag == DisplayServerEnums::WINDOW_FLAG_TRANSPARENT && p_window == DisplayServerEnums::MAIN_WINDOW_ID) { transparent = p_enabled; layer.opaque = !(OS::get_singleton()->is_layered_allowed() && transparent); } } -bool DisplayServerMacOSEmbedded::window_get_flag(WindowFlags p_flag, WindowID p_window) const { - if (p_flag == WINDOW_FLAG_TRANSPARENT && p_window == MAIN_WINDOW_ID) { +bool DisplayServerMacOSEmbedded::window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window) const { + if (p_flag == DisplayServerEnums::WINDOW_FLAG_TRANSPARENT && p_window == DisplayServerEnums::MAIN_WINDOW_ID) { return transparent; } return false; } -void DisplayServerMacOSEmbedded::window_request_attention(WindowID p_window) { +void DisplayServerMacOSEmbedded::window_request_attention(DisplayServerEnums::WindowID p_window) { // Not supported } -void DisplayServerMacOSEmbedded::window_set_taskbar_progress_value(float p_value, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_taskbar_progress_value(float p_value, DisplayServerEnums::WindowID p_window) { // Not supported. } -void DisplayServerMacOSEmbedded::window_set_taskbar_progress_state(ProgressState p_state, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_taskbar_progress_state(DisplayServerEnums::ProgressState p_state, DisplayServerEnums::WindowID p_window) { // Not supported. } -void DisplayServerMacOSEmbedded::window_move_to_foreground(WindowID p_window) { +void DisplayServerMacOSEmbedded::window_move_to_foreground(DisplayServerEnums::WindowID p_window) { // Not supported } -bool DisplayServerMacOSEmbedded::window_is_focused(WindowID p_window) const { +bool DisplayServerMacOSEmbedded::window_is_focused(DisplayServerEnums::WindowID p_window) const { return true; } @@ -655,7 +655,7 @@ return state.screen_max_scale; } -bool DisplayServerMacOSEmbedded::window_can_draw(WindowID p_window) const { +bool DisplayServerMacOSEmbedded::window_can_draw(DisplayServerEnums::WindowID p_window) const { return true; } @@ -663,11 +663,11 @@ return true; } -void DisplayServerMacOSEmbedded::window_set_ime_active(const bool p_active, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window) { EngineDebugger::get_singleton()->send_message("game_view:window_set_ime_active", { p_active }); } -void DisplayServerMacOSEmbedded::window_set_ime_position(const Point2i &p_pos, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window) { if (p_pos == ime_last_position) { return; } @@ -675,15 +675,15 @@ ime_last_position = p_pos; } -DisplayServerMacOSBase::HDROutput &DisplayServerMacOSEmbedded::_get_hdr_output(WindowID p_window) { +DisplayServerMacOSBase::HDROutput &DisplayServerMacOSEmbedded::_get_hdr_output(DisplayServerEnums::WindowID p_window) { return hdr_output; } -const DisplayServerMacOSBase::HDROutput &DisplayServerMacOSEmbedded::_get_hdr_output(WindowID p_window) const { +const DisplayServerMacOSBase::HDROutput &DisplayServerMacOSEmbedded::_get_hdr_output(DisplayServerEnums::WindowID p_window) const { return hdr_output; } -void DisplayServerMacOSEmbedded::window_get_edr_values(WindowID p_window, CGFloat *r_max_potential_edr_value, CGFloat *r_max_edr_value) const { +void DisplayServerMacOSEmbedded::window_get_edr_values(DisplayServerEnums::WindowID p_window, CGFloat *r_max_potential_edr_value, CGFloat *r_max_edr_value) const { _THREAD_SAFE_METHOD_ #define SET_VAL(v, val) \ @@ -704,7 +704,7 @@ void DisplayServerMacOSEmbedded::update_screen_parameters() { if (hdr_output.requested) { - _update_hdr_output(MAIN_WINDOW_ID, hdr_output); + _update_hdr_output(DisplayServerEnums::MAIN_WINDOW_ID, hdr_output); } } @@ -725,14 +725,14 @@ #endif } if (hdr_output.requested) { - _update_hdr_output(MAIN_WINDOW_ID, hdr_output); + _update_hdr_output(DisplayServerEnums::MAIN_WINDOW_ID, hdr_output); } } -void DisplayServerMacOSEmbedded::window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window) { +void DisplayServerMacOSEmbedded::window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window) { #if defined(GLES3_ENABLED) if (gl_manager) { - gl_manager->set_vsync_enabled(p_vsync_mode != DisplayServer::VSYNC_DISABLED); + gl_manager->set_vsync_enabled(p_vsync_mode != DisplayServerEnums::VSYNC_DISABLED); } #endif @@ -743,11 +743,11 @@ #endif } -DisplayServer::VSyncMode DisplayServerMacOSEmbedded::window_get_vsync_mode(WindowID p_window) const { +DisplayServerEnums::VSyncMode DisplayServerMacOSEmbedded::window_get_vsync_mode(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(GLES3_ENABLED) if (gl_manager) { - return (gl_manager->is_vsync_enabled() ? DisplayServer::VSyncMode::VSYNC_ENABLED : DisplayServer::VSyncMode::VSYNC_DISABLED); + return (gl_manager->is_vsync_enabled() ? DisplayServerEnums::VSyncMode::VSYNC_ENABLED : DisplayServerEnums::VSyncMode::VSYNC_DISABLED); } #endif #if defined(RD_ENABLED) @@ -755,15 +755,15 @@ return rendering_context->window_get_vsync_mode(p_window); } #endif - return DisplayServer::VSYNC_ENABLED; + return DisplayServerEnums::VSYNC_ENABLED; } -void DisplayServerMacOSEmbedded::cursor_set_shape(CursorShape p_shape) { +void DisplayServerMacOSEmbedded::cursor_set_shape(DisplayServerEnums::CursorShape p_shape) { cursor_shape = p_shape; EngineDebugger::get_singleton()->send_message("game_view:cursor_set_shape", { p_shape }); } -void DisplayServerMacOSEmbedded::cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) { +void DisplayServerMacOSEmbedded::cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape, const Vector2 &p_hotspot) { PackedByteArray data; if (p_cursor.is_valid()) { Ref image = _get_cursor_image_from_resource(p_cursor, p_hotspot); diff --git a/platform/macos/editor/embedded_game_view_plugin.mm b/platform/macos/editor/embedded_game_view_plugin.mm index b1f2874cd2c4..d6caba5afb80 100644 --- a/platform/macos/editor/embedded_game_view_plugin.mm +++ b/platform/macos/editor/embedded_game_view_plugin.mm @@ -35,6 +35,7 @@ #include "core/input/input.h" #include "editor/editor_node.h" #include "editor/gui/window_wrapper.h" +#include "servers/display/display_server.h" HashMap GameViewDebuggerMacOS::parse_message_handlers; @@ -63,7 +64,7 @@ if (!cursor_data.is_empty()) { image->load_png_from_buffer(cursor_data); } - DisplayServer::CursorShape shape = DisplayServer::CursorShape(p_args[1]); + DisplayServerEnums::CursorShape shape = DisplayServerEnums::CursorShape(p_args[1]); Vector2 hotspot = p_args[2]; embedded_process->get_layer_host()->cursor_set_custom_image(image, shape, hotspot); @@ -74,7 +75,7 @@ bool GameViewDebuggerMacOS::_msg_mouse_set_mode(const Array &p_args) { ERR_FAIL_COND_V_MSG(p_args.size() != 1, false, "mouse_set_mode: invalid number of arguments."); - DisplayServer::MouseMode mode = DisplayServer::MouseMode(p_args[0]); + DisplayServerEnums::MouseMode mode = DisplayServerEnums::MouseMode(p_args[0]); embedded_process->mouse_set_mode(mode); return true; @@ -84,7 +85,7 @@ ERR_FAIL_COND_V_MSG(p_args.size() != 1, false, "window_set_ime_active: invalid number of arguments."); bool active = p_args[0]; - DisplayServer::WindowID wid = embedded_process->get_window()->get_window_id(); + DisplayServerEnums::WindowID wid = embedded_process->get_window()->get_window_id(); DisplayServer::get_singleton()->window_set_ime_active(active, wid); return true; } @@ -94,7 +95,7 @@ Point2i pos = p_args[0]; Point2i xpos = embedded_process->get_layer_host()->get_global_transform_with_canvas().xform(pos); - DisplayServer::WindowID wid = embedded_process->get_window()->get_window_id(); + DisplayServerEnums::WindowID wid = embedded_process->get_window()->get_window_id(); DisplayServer::get_singleton()->window_set_ime_position(xpos, wid); return true; } diff --git a/platform/macos/editor/embedded_process_macos.h b/platform/macos/editor/embedded_process_macos.h index 3f3f93c0c9c9..46672ec3e35b 100644 --- a/platform/macos/editor/embedded_process_macos.h +++ b/platform/macos/editor/embedded_process_macos.h @@ -30,8 +30,10 @@ #pragma once +#include "core/object/class_db.h" #include "editor/run/embedded_process.h" -#include "servers/display/display_server.h" +#include "scene/gui/control.h" +#include "servers/display/display_server_enums.h" class DisplayServerMacOS; class EmbeddedProcessMacOS; @@ -52,7 +54,7 @@ class LayerHost final : public Control { hotspot = p_hotspot; } }; - HashMap custom_cursors; + HashMap custom_cursors; virtual void gui_input(const Ref &p_event) override; @@ -60,7 +62,7 @@ class LayerHost final : public Control { void _notification(int p_what); public: - void cursor_set_custom_image(const Ref &p_image, DisplayServer::CursorShape p_shape, const Vector2 &p_hotspot); + void cursor_set_custom_image(const Ref &p_image, DisplayServerEnums::CursorShape p_shape, const Vector2 &p_hotspot); void set_script_debugger(ScriptEditorDebugger *p_debugger) { script_debugger = p_debugger; } @@ -88,7 +90,7 @@ class EmbeddedProcessMacOS final : public EmbeddedProcessBase { // Embedded process state. // The last mouse mode sent by the embedded process. - DisplayServer::MouseMode mouse_mode = DisplayServer::MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode = DisplayServerEnums::MOUSE_MODE_VISIBLE; // Helper functions. @@ -102,7 +104,7 @@ class EmbeddedProcessMacOS final : public EmbeddedProcessBase { // MARK: - Message Handlers void set_context_id(uint32_t p_context_id); - void mouse_set_mode(DisplayServer::MouseMode p_mode); + void mouse_set_mode(DisplayServerEnums::MouseMode p_mode); uint32_t get_context_id() const { return context_id; } void set_script_debugger(ScriptEditorDebugger *p_debugger) override; @@ -130,7 +132,7 @@ class EmbeddedProcessMacOS final : public EmbeddedProcessBase { void display_state_changed(); // MARK: - Embedded process state - _FORCE_INLINE_ DisplayServer::MouseMode get_mouse_mode() const { return mouse_mode; } + _FORCE_INLINE_ DisplayServerEnums::MouseMode get_mouse_mode() const { return mouse_mode; } EmbeddedProcessMacOS(); ~EmbeddedProcessMacOS() override; diff --git a/platform/macos/editor/embedded_process_macos.mm b/platform/macos/editor/embedded_process_macos.mm index 3e2fc72e46d9..568a5756fb76 100644 --- a/platform/macos/editor/embedded_process_macos.mm +++ b/platform/macos/editor/embedded_process_macos.mm @@ -106,11 +106,11 @@ ds->remove_embedded_process(current_process_id); } DisplayServer *ds = DisplayServer::get_singleton(); - for (int i = 0; i < DisplayServer::CURSOR_MAX; i++) { - ds->cursor_set_custom_image(Ref(), (DisplayServer::CursorShape)i, Vector2()); + for (int i = 0; i < DisplayServerEnums::CURSOR_MAX; i++) { + ds->cursor_set_custom_image(Ref(), (DisplayServerEnums::CursorShape)i, Vector2()); } - if (ds->mouse_get_mode() != DisplayServer::MOUSE_MODE_VISIBLE) { - ds->mouse_set_mode(DisplayServer::MOUSE_MODE_VISIBLE); + if (ds->mouse_get_mode() != DisplayServerEnums::MOUSE_MODE_VISIBLE) { + ds->mouse_set_mode(DisplayServerEnums::MOUSE_MODE_VISIBLE); } current_process_id = 0; embedding_state = EmbeddingState::IDLE; @@ -121,7 +121,7 @@ void EmbeddedProcessMacOS::request_close() { if (current_process_id != 0 && is_embedding_completed()) { - script_debugger->send_message("embed:win_event", { DisplayServer::WINDOW_EVENT_CLOSE_REQUEST }); + script_debugger->send_message("embed:win_event", { DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST }); } reset(); } @@ -130,7 +130,7 @@ DisplayServerMacOSEmbeddedState state; state.screen_max_scale = ds->screen_get_max_scale(); state.screen_dpi = ds->screen_get_dpi(); - DisplayServer::WindowID wid = window->get_window_id(); + DisplayServerEnums::WindowID wid = window->get_window_id(); state.screen_window_scale = ds->screen_get_scale(ds->window_get_current_screen(wid)); state.display_id = ds->window_get_display_id(wid); @@ -149,7 +149,7 @@ return; } - DisplayServer::WindowID wid = window->get_window_id(); + DisplayServerEnums::WindowID wid = window->get_window_id(); Error err = ds->embed_process_update(wid, this); if (err == OK) { layer_host->set_rect(get_adjusted_embedded_window_rect(get_rect())); @@ -190,10 +190,10 @@ } } -void EmbeddedProcessMacOS::mouse_set_mode(DisplayServer::MouseMode p_mode) { +void EmbeddedProcessMacOS::mouse_set_mode(DisplayServerEnums::MouseMode p_mode) { mouse_mode = p_mode; // If the mouse is anything other than visible, we must ensure the Game view is active and the layer focused. - if (mouse_mode != DisplayServer::MOUSE_MODE_VISIBLE) { + if (mouse_mode != DisplayServerEnums::MOUSE_MODE_VISIBLE) { EditorNode::get_singleton()->get_editor_main_screen()->select(EditorMainScreen::EDITOR_GAME); layer_host->grab_focus(); } @@ -226,11 +226,11 @@ switch (p_what) { case NOTIFICATION_MOUSE_ENTER: { DisplayServer *ds = DisplayServer::get_singleton(); - for (const KeyValue &E : custom_cursors) { + for (const KeyValue &E : custom_cursors) { ds->cursor_set_custom_image(E.value.image, E.key, E.value.hotspot); } if (script_debugger) { - script_debugger->send_message("embed:win_event", { DisplayServer::WINDOW_EVENT_MOUSE_ENTER }); + script_debugger->send_message("embed:win_event", { DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER }); } if (get_window()->has_focus()) { grab_focus(); @@ -245,28 +245,28 @@ ds->mouse_set_mode(process->get_mouse_mode()); } script_debugger->send_message("embed:notification", { NOTIFICATION_APPLICATION_FOCUS_IN }); - script_debugger->send_message("embed:win_event", { DisplayServer::WINDOW_EVENT_FOCUS_IN }); + script_debugger->send_message("embed:win_event", { DisplayServerEnums::WINDOW_EVENT_FOCUS_IN }); window_focused = true; } process->queue_redraw(); } break; case NOTIFICATION_MOUSE_EXIT: { DisplayServer *ds = DisplayServer::get_singleton(); - for (int i = 0; i < DisplayServer::CURSOR_MAX; i++) { - ds->cursor_set_custom_image(Ref(), (DisplayServer::CursorShape)i, Vector2()); + for (int i = 0; i < DisplayServerEnums::CURSOR_MAX; i++) { + ds->cursor_set_custom_image(Ref(), (DisplayServerEnums::CursorShape)i, Vector2()); } if (script_debugger) { - script_debugger->send_message("embed:win_event", { DisplayServer::WINDOW_EVENT_MOUSE_EXIT }); + script_debugger->send_message("embed:win_event", { DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT }); } } break; case NOTIFICATION_FOCUS_EXIT: { // Temporarily set mouse state back to visible, so the user can interact with the editor. if (window_focused && script_debugger) { DisplayServer *ds = DisplayServer::get_singleton(); - if (ds->mouse_get_mode() != DisplayServer::MOUSE_MODE_VISIBLE) { - ds->mouse_set_mode(DisplayServer::MOUSE_MODE_VISIBLE); + if (ds->mouse_get_mode() != DisplayServerEnums::MOUSE_MODE_VISIBLE) { + ds->mouse_set_mode(DisplayServerEnums::MOUSE_MODE_VISIBLE); } - script_debugger->send_message("embed:win_event", { DisplayServer::WINDOW_EVENT_FOCUS_OUT }); + script_debugger->send_message("embed:win_event", { DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT }); script_debugger->send_message("embed:notification", { NOTIFICATION_APPLICATION_FOCUS_OUT }); window_focused = false; } @@ -283,11 +283,11 @@ case NOTIFICATION_VISIBILITY_CHANGED: { if (!is_visible_in_tree()) { DisplayServer *ds = DisplayServer::get_singleton(); - for (int i = 0; i < DisplayServer::CURSOR_MAX; i++) { - ds->cursor_set_custom_image(Ref(), (DisplayServer::CursorShape)i, Vector2()); + for (int i = 0; i < DisplayServerEnums::CURSOR_MAX; i++) { + ds->cursor_set_custom_image(Ref(), (DisplayServerEnums::CursorShape)i, Vector2()); } - if (ds->mouse_get_mode() != DisplayServer::MOUSE_MODE_VISIBLE) { - ds->mouse_set_mode(DisplayServer::MOUSE_MODE_VISIBLE); + if (ds->mouse_get_mode() != DisplayServerEnums::MOUSE_MODE_VISIBLE) { + ds->mouse_set_mode(DisplayServerEnums::MOUSE_MODE_VISIBLE); } } } break; @@ -298,12 +298,12 @@ if (process->get_mouse_mode() != ds->mouse_get_mode()) { // Restore embedded process mouse mode. ds->mouse_set_mode(process->get_mouse_mode()); - if (process->get_mouse_mode() != DisplayServer::MOUSE_MODE_VISIBLE) { + if (process->get_mouse_mode() != DisplayServerEnums::MOUSE_MODE_VISIBLE) { get_window()->grab_focus(); } } script_debugger->send_message("embed:notification", { NOTIFICATION_APPLICATION_FOCUS_IN }); - script_debugger->send_message("embed:win_event", { DisplayServer::WINDOW_EVENT_FOCUS_IN }); + script_debugger->send_message("embed:win_event", { DisplayServerEnums::WINDOW_EVENT_FOCUS_IN }); window_focused = true; } } break; @@ -311,10 +311,10 @@ case NOTIFICATION_WM_WINDOW_FOCUS_OUT: { if (has_focus() && window_focused && script_debugger) { DisplayServer *ds = DisplayServer::get_singleton(); - if (ds->mouse_get_mode() != DisplayServer::MOUSE_MODE_VISIBLE) { - ds->mouse_set_mode(DisplayServer::MOUSE_MODE_VISIBLE); + if (ds->mouse_get_mode() != DisplayServerEnums::MOUSE_MODE_VISIBLE) { + ds->mouse_set_mode(DisplayServerEnums::MOUSE_MODE_VISIBLE); } - script_debugger->send_message("embed:win_event", { DisplayServer::WINDOW_EVENT_FOCUS_OUT }); + script_debugger->send_message("embed:win_event", { DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT }); script_debugger->send_message("embed:notification", { NOTIFICATION_APPLICATION_FOCUS_OUT }); window_focused = false; } @@ -322,7 +322,7 @@ } } -void LayerHost::cursor_set_custom_image(const Ref &p_image, DisplayServer::CursorShape p_shape, const Vector2 &p_hotspot) { +void LayerHost::cursor_set_custom_image(const Ref &p_image, DisplayServerEnums::CursorShape p_shape, const Vector2 &p_hotspot) { custom_cursors[p_shape] = CustomCursor(p_image, p_hotspot); } @@ -334,10 +334,10 @@ if (p_event->is_pressed()) { if (ED_IS_SHORTCUT("game_view/release_mouse", p_event)) { DisplayServer *ds = DisplayServer::get_singleton(); - if (ds->mouse_get_mode() != DisplayServer::MOUSE_MODE_VISIBLE) { - ds->mouse_set_mode(DisplayServer::MOUSE_MODE_VISIBLE); + if (ds->mouse_get_mode() != DisplayServerEnums::MOUSE_MODE_VISIBLE) { + ds->mouse_set_mode(DisplayServerEnums::MOUSE_MODE_VISIBLE); if (script_debugger != nullptr) { - script_debugger->send_message("embed:mouse_set_mode", { DisplayServer::MOUSE_MODE_VISIBLE }); + script_debugger->send_message("embed:mouse_set_mode", { DisplayServerEnums::MOUSE_MODE_VISIBLE }); } } accept_event(); diff --git a/platform/macos/embedded_debugger.mm b/platform/macos/embedded_debugger.mm index 7f79fd5dc576..21f6ac28b552 100644 --- a/platform/macos/embedded_debugger.mm +++ b/platform/macos/embedded_debugger.mm @@ -37,6 +37,7 @@ #include "core/input/input_event.h" #include "core/input/input_event_codec.h" #include "core/os/main_loop.h" +#include "core/os/os.h" #ifdef DEBUG_ENABLED HashMap EmbeddedDebugger::parse_message_handlers; @@ -90,7 +91,7 @@ Error EmbeddedDebugger::_msg_mouse_set_mode(const Array &p_args) { ERR_FAIL_COND_V_MSG(p_args.size() != 1, ERR_INVALID_PARAMETER, "Invalid number of arguments for 'mouse_set_mode' message."); - DisplayServer::MouseMode mode = p_args[0]; + DisplayServerEnums::MouseMode mode = p_args[0]; ds->mouse_set_mode(mode); return OK; } @@ -137,9 +138,9 @@ Error EmbeddedDebugger::_msg_win_event(const Array &p_args) { ERR_FAIL_COND_V_MSG(p_args.size() != 1, ERR_INVALID_PARAMETER, "Invalid number of arguments for 'win_event' message."); - DisplayServer::WindowEvent win_event = p_args[0]; - ds->send_window_event(win_event, DisplayServer::MAIN_WINDOW_ID); - if (win_event == DisplayServer::WindowEvent::WINDOW_EVENT_MOUSE_EXIT) { + DisplayServerEnums::WindowEvent win_event = p_args[0]; + ds->send_window_event(win_event, DisplayServerEnums::MAIN_WINDOW_ID); + if (win_event == DisplayServerEnums::WindowEvent::WINDOW_EVENT_MOUSE_EXIT) { Input::get_singleton()->release_pressed_events(); } return OK; diff --git a/platform/macos/embedded_gl_manager.h b/platform/macos/embedded_gl_manager.h index 922e30da42ff..31082a7bef63 100644 --- a/platform/macos/embedded_gl_manager.h +++ b/platform/macos/embedded_gl_manager.h @@ -32,8 +32,10 @@ #if defined(MACOS_ENABLED) && defined(GLES3_ENABLED) +#include "core/error/error_list.h" +#include "core/math/vector2i.h" #include "core/templates/rb_map.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #import #import @@ -75,11 +77,11 @@ class GLManagerEmbedded { ~GLWindow() { destroy_framebuffers(); } }; - RBMap windows; - typedef RBMap::Element GLWindowElement; + RBMap windows; + typedef RBMap::Element GLWindowElement; NSOpenGLContext *shared_context = nullptr; - DisplayServer::WindowID current_window = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID current_window = DisplayServerEnums::INVALID_WINDOW_ID; Error create_context(GLWindow &p_win); @@ -98,10 +100,10 @@ class GLManagerEmbedded { void release_display_link(); public: - Error window_create(DisplayServer::WindowID p_window_id, CALayer *p_layer, int p_width, int p_height); - void window_destroy(DisplayServer::WindowID p_window_id); - void window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height); - Size2i window_get_size(DisplayServer::WindowID p_window_id) const; + Error window_create(DisplayServerEnums::WindowID p_window_id, CALayer *p_layer, int p_width, int p_height); + void window_destroy(DisplayServerEnums::WindowID p_window_id); + void window_resize(DisplayServerEnums::WindowID p_window_id, int p_width, int p_height); + Size2i window_get_size(DisplayServerEnums::WindowID p_window_id) const; void set_display_id(uint32_t p_display_id); void set_vsync_enabled(bool p_enabled); @@ -110,7 +112,7 @@ class GLManagerEmbedded { void release_current(); void swap_buffers(); - void window_make_current(DisplayServer::WindowID p_window_id); + void window_make_current(DisplayServerEnums::WindowID p_window_id); Error initialize(); diff --git a/platform/macos/embedded_gl_manager.mm b/platform/macos/embedded_gl_manager.mm index c568f3e258d1..521720bfb889 100644 --- a/platform/macos/embedded_gl_manager.mm +++ b/platform/macos/embedded_gl_manager.mm @@ -65,7 +65,7 @@ return OK; } -Error GLManagerEmbedded::window_create(DisplayServer::WindowID p_window_id, CALayer *p_layer, int p_width, int p_height) { +Error GLManagerEmbedded::window_create(DisplayServerEnums::WindowID p_window_id, CALayer *p_layer, int p_width, int p_height) { GLWindow win; win.layer = p_layer; win.width = 0; @@ -81,7 +81,7 @@ return OK; } -void GLManagerEmbedded::window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height) { +void GLManagerEmbedded::window_resize(DisplayServerEnums::WindowID p_window_id, int p_width, int p_height) { GLWindowElement *el = windows.find(p_window_id); ERR_FAIL_NULL_MSG(el, "Window resize failed: window does not exist."); @@ -175,7 +175,7 @@ } } -Size2i GLManagerEmbedded::window_get_size(DisplayServer::WindowID p_window_id) const { +Size2i GLManagerEmbedded::window_get_size(DisplayServerEnums::WindowID p_window_id) const { const GLWindowElement *el = windows.find(p_window_id); if (el == nullptr) { return Size2i(); @@ -185,29 +185,29 @@ return Size2i(win.width, win.height); } -void GLManagerEmbedded::window_destroy(DisplayServer::WindowID p_window_id) { +void GLManagerEmbedded::window_destroy(DisplayServerEnums::WindowID p_window_id) { GLWindowElement *el = windows.find(p_window_id); if (el == nullptr) { return; } if (current_window == p_window_id) { - current_window = DisplayServer::INVALID_WINDOW_ID; + current_window = DisplayServerEnums::INVALID_WINDOW_ID; } windows.erase(el); } void GLManagerEmbedded::release_current() { - if (current_window == DisplayServer::INVALID_WINDOW_ID) { + if (current_window == DisplayServerEnums::INVALID_WINDOW_ID) { return; } [NSOpenGLContext clearCurrentContext]; - current_window = DisplayServer::INVALID_WINDOW_ID; + current_window = DisplayServerEnums::INVALID_WINDOW_ID; } -void GLManagerEmbedded::window_make_current(DisplayServer::WindowID p_window_id) { +void GLManagerEmbedded::window_make_current(DisplayServerEnums::WindowID p_window_id) { if (current_window == p_window_id) { return; } diff --git a/platform/macos/gl_manager_macos_angle.h b/platform/macos/gl_manager_macos_angle.h index 626c8ff10206..7e97622d6cc0 100644 --- a/platform/macos/gl_manager_macos_angle.h +++ b/platform/macos/gl_manager_macos_angle.h @@ -32,10 +32,9 @@ #if defined(MACOS_ENABLED) && defined(GLES3_ENABLED) -#include "core/os/os.h" -#include "core/templates/local_vector.h" +#include "core/templates/vector.h" #include "drivers/egl/egl_manager.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" // Suppress redefinition conflicts #define FontVariation __FontVariation @@ -57,7 +56,7 @@ class GLManagerANGLE_MacOS : public EGLManager { virtual Vector _get_platform_context_attribs() const override; public: - void window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height) {} + void window_resize(DisplayServerEnums::WindowID p_window_id, int p_width, int p_height) {} GLManagerANGLE_MacOS() {} ~GLManagerANGLE_MacOS() {} diff --git a/platform/macos/gl_manager_macos_legacy.h b/platform/macos/gl_manager_macos_legacy.h index cd40c1c230dc..f3b176e50b3e 100644 --- a/platform/macos/gl_manager_macos_legacy.h +++ b/platform/macos/gl_manager_macos_legacy.h @@ -32,8 +32,9 @@ #if defined(MACOS_ENABLED) && defined(GLES3_ENABLED) +#include "core/error/error_list.h" #include "core/templates/rb_map.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #import #import @@ -51,10 +52,10 @@ class GLManagerLegacy_MacOS { NSOpenGLContext *context = nullptr; }; - RBMap windows; + RBMap windows; NSOpenGLContext *shared_context = nullptr; - DisplayServer::WindowID current_window = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID current_window = DisplayServerEnums::INVALID_WINDOW_ID; Error create_context(GLWindow &win); @@ -65,23 +66,23 @@ class GLManagerLegacy_MacOS { CGLGetCurrentContextPtr CGLGetCurrentContext = nullptr; public: - Error window_create(DisplayServer::WindowID p_window_id, id p_view, int p_width, int p_height); - void window_destroy(DisplayServer::WindowID p_window_id); - void window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height); + Error window_create(DisplayServerEnums::WindowID p_window_id, id p_view, int p_width, int p_height); + void window_destroy(DisplayServerEnums::WindowID p_window_id); + void window_resize(DisplayServerEnums::WindowID p_window_id, int p_width, int p_height); void release_current(); void swap_buffers(); - void window_make_current(DisplayServer::WindowID p_window_id); + void window_make_current(DisplayServerEnums::WindowID p_window_id); - void window_set_per_pixel_transparency_enabled(DisplayServer::WindowID p_window_id, bool p_enabled); + void window_set_per_pixel_transparency_enabled(DisplayServerEnums::WindowID p_window_id, bool p_enabled); Error initialize(); void set_use_vsync(bool p_use); bool is_using_vsync() const; - NSOpenGLContext *get_context(DisplayServer::WindowID p_window_id); + NSOpenGLContext *get_context(DisplayServerEnums::WindowID p_window_id); GLManagerLegacy_MacOS(); ~GLManagerLegacy_MacOS(); diff --git a/platform/macos/gl_manager_macos_legacy.mm b/platform/macos/gl_manager_macos_legacy.mm index 142fb7443bb4..7e209a1c8bc7 100644 --- a/platform/macos/gl_manager_macos_legacy.mm +++ b/platform/macos/gl_manager_macos_legacy.mm @@ -32,6 +32,8 @@ #if defined(MACOS_ENABLED) && defined(GLES3_ENABLED) +#include "core/os/os.h" + #include #include #include @@ -64,7 +66,7 @@ return OK; } -Error GLManagerLegacy_MacOS::window_create(DisplayServer::WindowID p_window_id, id p_view, int p_width, int p_height) { +Error GLManagerLegacy_MacOS::window_create(DisplayServerEnums::WindowID p_window_id, id p_view, int p_width, int p_height) { GLWindow win; win.window_view = p_view; @@ -78,7 +80,7 @@ return OK; } -void GLManagerLegacy_MacOS::window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height) { +void GLManagerLegacy_MacOS::window_resize(DisplayServerEnums::WindowID p_window_id, int p_width, int p_height) { if (!windows.has(p_window_id)) { return; } @@ -99,28 +101,28 @@ [win.context update]; } -void GLManagerLegacy_MacOS::window_destroy(DisplayServer::WindowID p_window_id) { +void GLManagerLegacy_MacOS::window_destroy(DisplayServerEnums::WindowID p_window_id) { if (!windows.has(p_window_id)) { return; } if (current_window == p_window_id) { - current_window = DisplayServer::INVALID_WINDOW_ID; + current_window = DisplayServerEnums::INVALID_WINDOW_ID; } windows.erase(p_window_id); } void GLManagerLegacy_MacOS::release_current() { - if (current_window == DisplayServer::INVALID_WINDOW_ID) { + if (current_window == DisplayServerEnums::INVALID_WINDOW_ID) { return; } [NSOpenGLContext clearCurrentContext]; - current_window = DisplayServer::INVALID_WINDOW_ID; + current_window = DisplayServerEnums::INVALID_WINDOW_ID; } -void GLManagerLegacy_MacOS::window_make_current(DisplayServer::WindowID p_window_id) { +void GLManagerLegacy_MacOS::window_make_current(DisplayServerEnums::WindowID p_window_id) { if (current_window == p_window_id) { return; } @@ -139,7 +141,7 @@ [win.context flushBuffer]; } -void GLManagerLegacy_MacOS::window_set_per_pixel_transparency_enabled(DisplayServer::WindowID p_window_id, bool p_enabled) { +void GLManagerLegacy_MacOS::window_set_per_pixel_transparency_enabled(DisplayServerEnums::WindowID p_window_id, bool p_enabled) { if (!windows.has(p_window_id)) { return; } @@ -176,7 +178,7 @@ return use_vsync; } -NSOpenGLContext *GLManagerLegacy_MacOS::get_context(DisplayServer::WindowID p_window_id) { +NSOpenGLContext *GLManagerLegacy_MacOS::get_context(DisplayServerEnums::WindowID p_window_id) { if (!windows.has(p_window_id)) { return nullptr; } diff --git a/platform/macos/godot_application_delegate.mm b/platform/macos/godot_application_delegate.mm index 1f7aadbc6f4a..1ccf11917ca7 100644 --- a/platform/macos/godot_application_delegate.mm +++ b/platform/macos/godot_application_delegate.mm @@ -262,7 +262,7 @@ - (void)applicationDidBecomeActive:(NSNotification *)notification { return; } - DisplayServer::WindowID window_id = ds->get_focused_window(); + DisplayServerEnums::WindowID window_id = ds->get_focused_window(); NSEventModifierFlags flags = static_cast(mod); for (const CGKeyCode key : modifiers) { @@ -322,8 +322,8 @@ - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sende } DisplayServerMacOS *ds = Object::cast_to(DisplayServer::get_singleton()); - if (ds && ds->has_window(DisplayServerMacOS::MAIN_WINDOW_ID)) { - ds->send_window_event(ds->get_window(DisplayServerMacOS::MAIN_WINDOW_ID), DisplayServerMacOS::WINDOW_EVENT_CLOSE_REQUEST); + if (ds && ds->has_window(DisplayServerEnums::MAIN_WINDOW_ID)) { + ds->send_window_event(ds->get_window(DisplayServerEnums::MAIN_WINDOW_ID), DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); } return NSTerminateCancel; diff --git a/platform/macos/godot_button_view.h b/platform/macos/godot_button_view.h index 36e55bd7f87e..50d14b36f8b9 100644 --- a/platform/macos/godot_button_view.h +++ b/platform/macos/godot_button_view.h @@ -30,8 +30,6 @@ #pragma once -#include "servers/display/display_server.h" - #import #import diff --git a/platform/macos/godot_content_view.h b/platform/macos/godot_content_view.h index 8462431e33ee..d93cb291c146 100644 --- a/platform/macos/godot_content_view.h +++ b/platform/macos/godot_content_view.h @@ -30,7 +30,9 @@ #pragma once -#include "servers/display/display_server.h" +#include "core/input/input_enums.h" +#include "core/typedefs.h" +#include "servers/display/display_server_enums.h" #import #import @@ -45,11 +47,11 @@ #import @interface GodotContentLayerDelegate : NSObject { - DisplayServer::WindowID window_id; + DisplayServerEnums::WindowID window_id; bool need_redraw; } -- (void)setWindowID:(DisplayServer::WindowID)wid; +- (void)setWindowID:(DisplayServerEnums::WindowID)wid; - (void)setNeedRedraw:(bool)redraw; @end @@ -57,7 +59,7 @@ GODOT_CLANG_WARNING_PUSH_AND_IGNORE("-Wdeprecated-declarations") // OpenGL is deprecated in macOS 10.14. @interface GodotContentView : RootView { - DisplayServer::WindowID window_id; + DisplayServerEnums::WindowID window_id; NSTrackingArea *tracking_area; NSMutableAttributedString *marked_text; bool ime_input_event_in_progress; @@ -72,7 +74,7 @@ GODOT_CLANG_WARNING_PUSH_AND_IGNORE("-Wdeprecated-declarations") // OpenGL is de - (void)processScrollEvent:(NSEvent *)event button:(MouseButton)button factor:(double)factor; - (void)processPanEvent:(NSEvent *)event dx:(double)dx dy:(double)dy; - (void)processMouseEvent:(NSEvent *)event index:(MouseButton)index pressed:(bool)pressed outofstream:(bool)outofstream; -- (void)setWindowID:(DisplayServer::WindowID)wid; +- (void)setWindowID:(DisplayServerEnums::WindowID)wid; - (void)updateLayerDelegate; - (void)cancelComposition; diff --git a/platform/macos/godot_content_view.mm b/platform/macos/godot_content_view.mm index 28141ef8272e..badf8b9bf72b 100644 --- a/platform/macos/godot_content_view.mm +++ b/platform/macos/godot_content_view.mm @@ -44,12 +44,12 @@ @implementation GodotContentLayerDelegate - (id)init { self = [super init]; - window_id = DisplayServer::INVALID_WINDOW_ID; + window_id = DisplayServerEnums::INVALID_WINDOW_ID; need_redraw = false; return self; } -- (void)setWindowID:(DisplayServerMacOS::WindowID)wid { +- (void)setWindowID:(DisplayServerEnums::WindowID)wid { window_id = wid; } @@ -140,7 +140,7 @@ - (void)removeObserver:(NSObject *)targetObserver forKeyPath:(NSString *)keyPath - (id)init { self = [super init]; layer_delegate = [[GodotContentLayerDelegate alloc] init]; - window_id = DisplayServer::INVALID_WINDOW_ID; + window_id = DisplayServerEnums::INVALID_WINDOW_ID; tracking_area = nil; ime_input_event_in_progress = false; mouse_down_control = false; @@ -157,7 +157,7 @@ - (id)init { return self; } -- (void)setWindowID:(DisplayServerMacOS::WindowID)wid { +- (void)setWindowID:(DisplayServerEnums::WindowID)wid { window_id = wid; [layer_delegate setWindowID:window_id]; } @@ -434,7 +434,7 @@ - (void)mouseDown:(NSEvent *)event { DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton(); if (ds && ds->has_window(window_id)) { DisplayServerMacOS::WindowData &wd = ds->get_window(window_id); - wd.edge = DisplayServer::WINDOW_EDGE_MAX; + wd.edge = DisplayServerEnums::WINDOW_EDGE_MAX; } if (([event modifierFlags] & NSEventModifierFlagControl)) { mouse_down_control = true; @@ -449,43 +449,43 @@ - (void)mouseDragged:(NSEvent *)event { DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton(); if (ds && ds->has_window(window_id)) { DisplayServerMacOS::WindowData &wd = ds->get_window(window_id); - if (wd.edge != DisplayServer::WINDOW_EDGE_MAX) { + if (wd.edge != DisplayServerEnums::WINDOW_EDGE_MAX) { Size2i max_size = wd.max_size / ds->screen_get_max_scale(); Size2i min_size = wd.min_size / ds->screen_get_max_scale(); NSRect frame = [wd.window_object frame]; switch (wd.edge) { - case DisplayServer::WINDOW_EDGE_TOP_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_TOP_LEFT: { int clamped_dx = CLAMP(frame.size.width - event.deltaX, min_size.x, max_size.x) - frame.size.width; int clamped_dy = CLAMP(frame.size.height - event.deltaY, min_size.y, max_size.y) - frame.size.height; [wd.window_object setFrame:NSMakeRect(frame.origin.x - clamped_dx, frame.origin.y, frame.size.width + clamped_dx, frame.size.height + clamped_dy) display:YES]; } break; - case DisplayServer::WINDOW_EDGE_TOP: { + case DisplayServerEnums::WINDOW_EDGE_TOP: { int clamped_dy = CLAMP(frame.size.height - event.deltaY, min_size.y, max_size.y) - frame.size.height; [wd.window_object setFrame:NSMakeRect(frame.origin.x, frame.origin.y, frame.size.width, frame.size.height + clamped_dy) display:YES]; } break; - case DisplayServer::WINDOW_EDGE_TOP_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_TOP_RIGHT: { int clamped_dx = CLAMP(frame.size.width + event.deltaX, min_size.x, max_size.x) - frame.size.width; int clamped_dy = CLAMP(frame.size.height - event.deltaY, min_size.y, max_size.y) - frame.size.height; [wd.window_object setFrame:NSMakeRect(frame.origin.x, frame.origin.y, frame.size.width + clamped_dx, frame.size.height + clamped_dy) display:YES]; } break; - case DisplayServer::WINDOW_EDGE_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_LEFT: { int clamped_dx = CLAMP(frame.size.width - event.deltaX, min_size.x, max_size.x) - frame.size.width; [wd.window_object setFrame:NSMakeRect(frame.origin.x - clamped_dx, frame.origin.y, frame.size.width + clamped_dx, frame.size.height) display:YES]; } break; - case DisplayServer::WINDOW_EDGE_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_RIGHT: { int clamped_dx = CLAMP(frame.size.width + event.deltaX, min_size.x, max_size.x) - frame.size.width; [wd.window_object setFrame:NSMakeRect(frame.origin.x, frame.origin.y, frame.size.width + clamped_dx, frame.size.height) display:YES]; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM_LEFT: { int clamped_dx = CLAMP(frame.size.width - event.deltaX, min_size.x, max_size.x) - frame.size.width; int clamped_dy = CLAMP(frame.size.height + event.deltaY, min_size.y, max_size.y) - frame.size.height; [wd.window_object setFrame:NSMakeRect(frame.origin.x - clamped_dx, frame.origin.y - clamped_dy, frame.size.width + clamped_dx, frame.size.height + clamped_dy) display:YES]; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM: { int clamped_dy = CLAMP(frame.size.height + event.deltaY, min_size.y, max_size.y) - frame.size.height; [wd.window_object setFrame:NSMakeRect(frame.origin.x, frame.origin.y - clamped_dy, frame.size.width, frame.size.height + clamped_dy) display:YES]; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM_RIGHT: { int clamped_dx = CLAMP(frame.size.width + event.deltaX, min_size.x, max_size.x) - frame.size.width; int clamped_dy = CLAMP(frame.size.height + event.deltaY, min_size.y, max_size.y) - frame.size.height; [wd.window_object setFrame:NSMakeRect(frame.origin.x, frame.origin.y - clamped_dy, frame.size.width + clamped_dx, frame.size.height + clamped_dy) display:YES]; @@ -503,7 +503,7 @@ - (void)mouseUp:(NSEvent *)event { DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton(); if (ds && ds->has_window(window_id)) { DisplayServerMacOS::WindowData &wd = ds->get_window(window_id); - wd.edge = DisplayServer::WINDOW_EDGE_MAX; + wd.edge = DisplayServerEnums::WINDOW_EDGE_MAX; } if (mouse_down_control) { [self processMouseEvent:event index:MouseButton::RIGHT pressed:false outofstream:false]; @@ -622,7 +622,7 @@ - (void)mouseExited:(NSEvent *)event { return; } - if (ds->mouse_get_mode() != DisplayServer::MOUSE_MODE_CAPTURED) { + if (ds->mouse_get_mode() != DisplayServerEnums::MOUSE_MODE_CAPTURED) { ds->mouse_exit_window(window_id); } } @@ -633,7 +633,7 @@ - (void)mouseEntered:(NSEvent *)event { return; } - if (ds->mouse_get_mode() != DisplayServer::MOUSE_MODE_CAPTURED) { + if (ds->mouse_get_mode() != DisplayServerEnums::MOUSE_MODE_CAPTURED) { ds->mouse_enter_window(window_id); } diff --git a/platform/macos/godot_menu_item.h b/platform/macos/godot_menu_item.h index 23bddeef3604..ad2006297c46 100644 --- a/platform/macos/godot_menu_item.h +++ b/platform/macos/godot_menu_item.h @@ -30,7 +30,11 @@ #pragma once -#include "servers/display/display_server.h" +#include "core/io/image.h" +#include "core/object/ref_counted.h" +#include "core/os/keyboard.h" +#include "core/variant/callable.h" +#include "core/variant/variant.h" #import #import diff --git a/platform/macos/godot_progress_view.h b/platform/macos/godot_progress_view.h index de15afeb9538..2c765be856b0 100644 --- a/platform/macos/godot_progress_view.h +++ b/platform/macos/godot_progress_view.h @@ -36,10 +36,10 @@ #import @interface GodotProgressView : NSView { - DisplayServer::ProgressState pr_state; + DisplayServerEnums::ProgressState pr_state; float pr_value; float pr_offset; } - (void)setValue:(float)value; -- (void)setState:(DisplayServer::ProgressState)state; +- (void)setState:(DisplayServerEnums::ProgressState)state; @end diff --git a/platform/macos/godot_progress_view.mm b/platform/macos/godot_progress_view.mm index 8bc74b2cca41..ce39ee190f55 100644 --- a/platform/macos/godot_progress_view.mm +++ b/platform/macos/godot_progress_view.mm @@ -34,7 +34,7 @@ @implementation GodotProgressView - (id)init { self = [super init]; - pr_state = DisplayServer::PROGRESS_STATE_NOPROGRESS; + pr_state = DisplayServerEnums::PROGRESS_STATE_NOPROGRESS; pr_value = 0.f; pr_offset = 0.f; return self; @@ -44,7 +44,7 @@ - (void)setValue:(float)value { pr_value = value; } -- (void)setState:(DisplayServer::ProgressState)state { +- (void)setState:(DisplayServerEnums::ProgressState)state { pr_state = state; } @@ -53,7 +53,7 @@ - (void)drawRect:(NSRect)dirtyRect { [[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh]; [[NSApp applicationIconImage] drawInRect:self.bounds]; - if (pr_state == DisplayServer::PROGRESS_STATE_NOPROGRESS) { + if (pr_state == DisplayServerEnums::PROGRESS_STATE_NOPROGRESS) { return; } @@ -71,7 +71,7 @@ - (void)drawRect:(NSRect)dirtyRect { [bezier_path addClip]; // Fill draw. - if (pr_state == DisplayServer::PROGRESS_STATE_INDETERMINATE) { + if (pr_state == DisplayServerEnums::PROGRESS_STATE_INDETERMINATE) { rect.size.width /= 5.0; pr_offset += rect.size.width / 10.0; if (pr_offset > self.bounds.size.width - rect.size.width) { @@ -81,9 +81,9 @@ - (void)drawRect:(NSRect)dirtyRect { } else { rect.size.width = Math::floor(rect.size.width * pr_value); } - if (pr_state == DisplayServer::PROGRESS_STATE_ERROR) { + if (pr_state == DisplayServerEnums::PROGRESS_STATE_ERROR) { [[NSColor colorWithSRGBRed:1.0 green:0.2 blue:0.2 alpha:1.0] set]; - } else if (pr_state == DisplayServer::PROGRESS_STATE_PAUSED) { + } else if (pr_state == DisplayServerEnums::PROGRESS_STATE_PAUSED) { [[NSColor colorWithSRGBRed:1.0 green:1.0 blue:0.2 alpha:1.0] set]; } else { [[NSColor colorWithSRGBRed:0.2 green:0.6 blue:1.0 alpha:1.0] set]; diff --git a/platform/macos/godot_window.h b/platform/macos/godot_window.h index b5b72089f92c..6c9a9a5ddd95 100644 --- a/platform/macos/godot_window.h +++ b/platform/macos/godot_window.h @@ -30,17 +30,17 @@ #pragma once -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #import #import @interface GodotWindow : NSWindow { - DisplayServer::WindowID window_id; + DisplayServerEnums::WindowID window_id; NSTimeInterval anim_duration; } -- (void)setWindowID:(DisplayServer::WindowID)wid; +- (void)setWindowID:(DisplayServerEnums::WindowID)wid; - (void)setAnimDuration:(NSTimeInterval)duration; @end diff --git a/platform/macos/godot_window.mm b/platform/macos/godot_window.mm index 7614c283f314..9d42288b528b 100644 --- a/platform/macos/godot_window.mm +++ b/platform/macos/godot_window.mm @@ -36,7 +36,7 @@ @implementation GodotWindow - (id)init { self = [super init]; - window_id = DisplayServer::INVALID_WINDOW_ID; + window_id = DisplayServerEnums::INVALID_WINDOW_ID; anim_duration = -1.0f; return self; } @@ -53,7 +53,7 @@ - (NSTimeInterval)animationResizeTime:(NSRect)newFrame { } } -- (void)setWindowID:(DisplayServerMacOS::WindowID)wid { +- (void)setWindowID:(DisplayServerEnums::WindowID)wid { window_id = wid; } diff --git a/platform/macos/godot_window_delegate.h b/platform/macos/godot_window_delegate.h index 6237838bcf99..015f70e66ab7 100644 --- a/platform/macos/godot_window_delegate.h +++ b/platform/macos/godot_window_delegate.h @@ -30,7 +30,7 @@ #pragma once -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #import #import @@ -39,7 +39,7 @@ class DisplayServerMacOS; @interface GodotWindowDelegate : NSObject -- (void)setWindowID:(DisplayServer::WindowID)wid; +- (void)setWindowID:(DisplayServerEnums::WindowID)wid; - (instancetype)initWithDisplayServer:(DisplayServerMacOS *)p_ds; diff --git a/platform/macos/godot_window_delegate.mm b/platform/macos/godot_window_delegate.mm index 5c73f1c2d861..73429c66f12e 100644 --- a/platform/macos/godot_window_delegate.mm +++ b/platform/macos/godot_window_delegate.mm @@ -38,19 +38,19 @@ #include "servers/display/accessibility_server.h" @implementation GodotWindowDelegate { - DisplayServer::WindowID window_id; + DisplayServerEnums::WindowID window_id; DisplayServerMacOS *ds; } - (instancetype)initWithDisplayServer:(DisplayServerMacOS *)p_ds { if (self = [super init]) { ds = p_ds; - window_id = DisplayServerMacOS::INVALID_WINDOW_ID; + window_id = DisplayServerEnums::INVALID_WINDOW_ID; } return self; } -- (void)setWindowID:(DisplayServer::WindowID)wid { +- (void)setWindowID:(DisplayServerEnums::WindowID)wid { window_id = wid; } @@ -59,7 +59,7 @@ - (BOOL)windowShouldClose:(id)sender { return YES; } - ds->send_window_event(ds->get_window(window_id), DisplayServerMacOS::WINDOW_EVENT_CLOSE_REQUEST); + ds->send_window_event(ds->get_window(window_id), DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); return NO; } @@ -72,11 +72,11 @@ - (void)windowWillClose:(NSNotification *)notification { DisplayServerMacOS::WindowData &wd = ds->get_window(window_id); while (wd.transient_children.size()) { - ds->window_set_transient(*wd.transient_children.begin(), DisplayServerMacOS::INVALID_WINDOW_ID); + ds->window_set_transient(*wd.transient_children.begin(), DisplayServerEnums::INVALID_WINDOW_ID); } - if (wd.transient_parent != DisplayServerMacOS::INVALID_WINDOW_ID) { - ds->window_set_transient(window_id, DisplayServerMacOS::INVALID_WINDOW_ID); + if (wd.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { + ds->window_set_transient(window_id, DisplayServerEnums::INVALID_WINDOW_ID); } ds->mouse_exit_window(window_id); @@ -127,7 +127,7 @@ - (void)windowDidEnterFullScreen:(NSNotification *)notification { ds->window_set_custom_window_buttons(wd, false); } - ds->send_window_event(wd, DisplayServerMacOS::WINDOW_EVENT_TITLEBAR_CHANGE); + ds->send_window_event(wd, DisplayServerEnums::WINDOW_EVENT_TITLEBAR_CHANGE); // Force window resize event and redraw. [self windowDidResize:notification]; @@ -146,7 +146,7 @@ - (void)windowWillExitFullScreen:(NSNotification *)notification { ds->window_set_custom_window_buttons(wd, true); } - ds->send_window_event(wd, DisplayServerMacOS::WINDOW_EVENT_TITLEBAR_CHANGE); + ds->send_window_event(wd, DisplayServerEnums::WINDOW_EVENT_TITLEBAR_CHANGE); } - (void)windowDidFailToExitFullScreen:(NSWindow *)window { @@ -161,7 +161,7 @@ - (void)windowDidFailToExitFullScreen:(NSWindow *)window { ds->window_set_custom_window_buttons(wd, false); } - ds->send_window_event(wd, DisplayServerMacOS::WINDOW_EVENT_TITLEBAR_CHANGE); + ds->send_window_event(wd, DisplayServerEnums::WINDOW_EVENT_TITLEBAR_CHANGE); } - (void)windowDidExitFullScreen:(NSNotification *)notification { @@ -238,7 +238,7 @@ - (void)windowDidChangeBackingProperties:(NSNotification *)notification { wd.size.width = content_rect.size.width * scale; wd.size.height = content_rect.size.height * scale; - ds->send_window_event(wd, DisplayServerMacOS::WINDOW_EVENT_DPI_CHANGE); + ds->send_window_event(wd, DisplayServerEnums::WINDOW_EVENT_DPI_CHANGE); CALayer *layer = [wd.window_view layer]; if (layer) { @@ -317,7 +317,7 @@ - (void)windowDidBecomeKey:(NSNotification *)notification { [wd.window_button_view displayButtons]; } - if (ds->mouse_get_mode() == DisplayServer::MOUSE_MODE_CAPTURED) { + if (ds->mouse_get_mode() == DisplayServerEnums::MOUSE_MODE_CAPTURED) { const NSRect content_rect = [wd.window_view frame]; NSRect point_in_window_rect = NSMakeRect(content_rect.size.width / 2, content_rect.size.height / 2, 0, 0); NSPoint point_on_screen = [[wd.window_view window] convertRectToScreen:point_in_window_rect].origin; @@ -333,7 +333,7 @@ - (void)windowDidBecomeKey:(NSNotification *)notification { ds->set_last_focused_window(window_id); AccessibilityServer::get_singleton()->set_window_focused(window_id, true); - ds->send_window_event(wd, DisplayServerMacOS::WINDOW_EVENT_FOCUS_IN); + ds->send_window_event(wd, DisplayServerEnums::WINDOW_EVENT_FOCUS_IN); } - (void)windowDidResignKey:(NSNotification *)notification { @@ -351,7 +351,7 @@ - (void)windowDidResignKey:(NSNotification *)notification { ds->release_pressed_events(); AccessibilityServer::get_singleton()->set_window_focused(window_id, false); - ds->send_window_event(wd, DisplayServerMacOS::WINDOW_EVENT_FOCUS_OUT); + ds->send_window_event(wd, DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT); } - (void)windowDidMiniaturize:(NSNotification *)notification { @@ -365,7 +365,7 @@ - (void)windowDidMiniaturize:(NSNotification *)notification { ds->release_pressed_events(); AccessibilityServer::get_singleton()->set_window_focused(window_id, false); - ds->send_window_event(wd, DisplayServerMacOS::WINDOW_EVENT_FOCUS_OUT); + ds->send_window_event(wd, DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT); } - (void)windowDidDeminiaturize:(NSNotification *)notification { @@ -380,7 +380,7 @@ - (void)windowDidDeminiaturize:(NSNotification *)notification { ds->set_last_focused_window(window_id); AccessibilityServer::get_singleton()->set_window_focused(window_id, true); - ds->send_window_event(wd, DisplayServerMacOS::WINDOW_EVENT_FOCUS_IN); + ds->send_window_event(wd, DisplayServerEnums::WINDOW_EVENT_FOCUS_IN); } } diff --git a/platform/macos/tts_macos.h b/platform/macos/tts_macos.h index 102b225c653b..132aa389c64a 100644 --- a/platform/macos/tts_macos.h +++ b/platform/macos/tts_macos.h @@ -34,7 +34,6 @@ #include "core/templates/hash_map.h" #include "core/templates/list.h" #include "core/variant/array.h" -#include "servers/display/display_server.h" #import @@ -44,6 +43,8 @@ #import #endif +struct TTSUtterance; + @interface TTS_MacOS : NSObject { // AVSpeechSynthesizer bool speaking; @@ -55,7 +56,7 @@ int64_t last_utterance; id synth; // NSSpeechSynthesizer or AVSpeechSynthesizer - List queue; + List queue; } - (void)pauseSpeaking; diff --git a/platform/macos/tts_macos.mm b/platform/macos/tts_macos.mm index 9ff52d395ef7..7a2a6bc44f22 100644 --- a/platform/macos/tts_macos.mm +++ b/platform/macos/tts_macos.mm @@ -30,6 +30,8 @@ #import "tts_macos.h" +#include "servers/display/display_server.h" + @implementation TTS_MacOS - (id)init { @@ -65,13 +67,13 @@ - (void)speechSynthesizer:(AVSpeechSynthesizer *)av_synth willSpeakRangeOfSpeech pos++; } - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_BOUNDARY, ids[utterance], pos); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_BOUNDARY, ids[utterance], pos); } // AVSpeechSynthesizer callback (macOS 10.14+) - (void)speechSynthesizer:(AVSpeechSynthesizer *)av_synth didCancelSpeechUtterance:(AVSpeechUtterance *)utterance API_AVAILABLE(macosx(10.14)) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, ids[utterance]); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, ids[utterance]); ids.erase(utterance); speaking = false; [self update]; @@ -80,7 +82,7 @@ - (void)speechSynthesizer:(AVSpeechSynthesizer *)av_synth didCancelSpeechUtteran // AVSpeechSynthesizer callback (macOS 10.14+) - (void)speechSynthesizer:(AVSpeechSynthesizer *)av_synth didFinishSpeechUtterance:(AVSpeechUtterance *)utterance API_AVAILABLE(macosx(10.14)) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_ENDED, ids[utterance]); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_ENDED, ids[utterance]); ids.erase(utterance); speaking = false; [self update]; @@ -100,16 +102,16 @@ - (void)speechSynthesizer:(NSSpeechSynthesizer *)ns_synth willSpeakWord:(NSRange pos++; } - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_BOUNDARY, last_utterance, pos); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_BOUNDARY, last_utterance, pos); } } - (void)speechSynthesizer:(NSSpeechSynthesizer *)ns_synth didFinishSpeaking:(BOOL)success { if (!paused && have_utterance) { if (success) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_ENDED, last_utterance); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_ENDED, last_utterance); } else { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, last_utterance); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, last_utterance); } have_utterance = false; } @@ -119,7 +121,7 @@ - (void)speechSynthesizer:(NSSpeechSynthesizer *)ns_synth didFinishSpeaking:(BOO - (void)update { if (!speaking && queue.size() > 0) { - DisplayServer::TTSUtterance &message = queue.front()->get(); + TTSUtterance &message = queue.front()->get(); if (@available(macOS 10.14, *)) { AVSpeechSynthesizer *av_synth = synth; @@ -148,7 +150,7 @@ - (void)update { have_utterance = true; [ns_synth startSpeakingString:[NSString stringWithUTF8String:message.text.utf8().get_data()]]; } - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_STARTED, message.id); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_STARTED, message.id); queue.pop_front(); speaking = true; @@ -178,8 +180,8 @@ - (void)resumeSpeaking { } - (void)stopSpeaking { - for (DisplayServer::TTSUtterance &message : queue) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, message.id); + for (TTSUtterance &message : queue) { + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, message.id); } queue.clear(); if (@available(macOS 10.14, *)) { @@ -188,7 +190,7 @@ - (void)stopSpeaking { } else { NSSpeechSynthesizer *ns_synth = synth; if (have_utterance) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, last_utterance); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, last_utterance); } [ns_synth stopSpeaking]; } @@ -216,11 +218,11 @@ - (void)speak:(const String &)text voice:(const String &)voice volume:(int)volum } if (text.is_empty()) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, utterance_id); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, utterance_id); return; } - DisplayServer::TTSUtterance message; + TTSUtterance message; message.text = text; message.voice = voice; message.volume = CLAMP(volume, 0, 100); diff --git a/platform/visionos/display_server_visionos.h b/platform/visionos/display_server_visionos.h index a3e01bcca06d..adc05a33f1bf 100644 --- a/platform/visionos/display_server_visionos.h +++ b/platform/visionos/display_server_visionos.h @@ -37,20 +37,20 @@ class DisplayServerVisionOS : public DisplayServerAppleEmbedded { _THREAD_SAFE_CLASS_ - DisplayServerVisionOS(const String &p_rendering_driver, DisplayServer::WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + DisplayServerVisionOS(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); ~DisplayServerVisionOS(); public: static DisplayServerVisionOS *get_singleton(); static void register_visionos_driver(); - static DisplayServer *create_func(const String &p_rendering_driver, WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + static DisplayServer *create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); virtual String get_name() const override; - virtual int screen_get_dpi(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_scale(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_refresh_rate(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual int screen_get_dpi(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_scale(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_refresh_rate(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; protected: virtual bool _screen_hdr_is_supported() const override; diff --git a/platform/visionos/display_server_visionos.mm b/platform/visionos/display_server_visionos.mm index eee22bd98394..357818bac5d7 100644 --- a/platform/visionos/display_server_visionos.mm +++ b/platform/visionos/display_server_visionos.mm @@ -34,14 +34,14 @@ return (DisplayServerVisionOS *)DisplayServerAppleEmbedded::get_singleton(); } -DisplayServerVisionOS::DisplayServerVisionOS(const String &p_rendering_driver, WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) : +DisplayServerVisionOS::DisplayServerVisionOS(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) : DisplayServerAppleEmbedded(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_position, p_resolution, p_screen, p_context, p_parent_window, r_error) { } DisplayServerVisionOS::~DisplayServerVisionOS() { } -DisplayServer *DisplayServerVisionOS::create_func(const String &p_rendering_driver, WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServer *DisplayServerVisionOS::create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { return memnew(DisplayServerVisionOS(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_position, p_resolution, p_screen, p_context, p_parent_window, r_error)); } diff --git a/platform/web/display_server_web.cpp b/platform/web/display_server_web.cpp index c95c453b2414..18b20be52ec0 100644 --- a/platform/web/display_server_web.cpp +++ b/platform/web/display_server_web.cpp @@ -89,9 +89,9 @@ void DisplayServerWeb::fullscreen_change_callback(int p_fullscreen) { void DisplayServerWeb::_fullscreen_change_callback(int p_fullscreen) { DisplayServerWeb *display = get_singleton(); if (p_fullscreen) { - display->window_mode = WINDOW_MODE_FULLSCREEN; + display->window_mode = DisplayServerEnums::WINDOW_MODE_FULLSCREEN; } else { - display->window_mode = WINDOW_MODE_WINDOWED; + display->window_mode = DisplayServerEnums::WINDOW_MODE_WINDOWED; } } @@ -145,7 +145,7 @@ void DisplayServerWeb::request_quit_callback() { void DisplayServerWeb::_request_quit_callback() { DisplayServerWeb *ds = get_singleton(); if (ds && ds->window_event_callback.is_valid()) { - Variant event = int(DisplayServer::WINDOW_EVENT_CLOSE_REQUEST); + Variant event = int(DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); ds->window_event_callback.call(event); } } @@ -351,41 +351,41 @@ void DisplayServerWeb::_mouse_move_callback(double p_x, double p_y, double p_rel } // Cursor -const char *DisplayServerWeb::godot2dom_cursor(DisplayServer::CursorShape p_shape) { +const char *DisplayServerWeb::godot2dom_cursor(DisplayServerEnums::CursorShape p_shape) { switch (p_shape) { - case DisplayServer::CURSOR_ARROW: + case DisplayServerEnums::CURSOR_ARROW: return "default"; - case DisplayServer::CURSOR_IBEAM: + case DisplayServerEnums::CURSOR_IBEAM: return "text"; - case DisplayServer::CURSOR_POINTING_HAND: + case DisplayServerEnums::CURSOR_POINTING_HAND: return "pointer"; - case DisplayServer::CURSOR_CROSS: + case DisplayServerEnums::CURSOR_CROSS: return "crosshair"; - case DisplayServer::CURSOR_WAIT: + case DisplayServerEnums::CURSOR_WAIT: return "wait"; - case DisplayServer::CURSOR_BUSY: + case DisplayServerEnums::CURSOR_BUSY: return "progress"; - case DisplayServer::CURSOR_DRAG: + case DisplayServerEnums::CURSOR_DRAG: return "grab"; - case DisplayServer::CURSOR_CAN_DROP: + case DisplayServerEnums::CURSOR_CAN_DROP: return "grabbing"; - case DisplayServer::CURSOR_FORBIDDEN: + case DisplayServerEnums::CURSOR_FORBIDDEN: return "no-drop"; - case DisplayServer::CURSOR_VSIZE: + case DisplayServerEnums::CURSOR_VSIZE: return "ns-resize"; - case DisplayServer::CURSOR_HSIZE: + case DisplayServerEnums::CURSOR_HSIZE: return "ew-resize"; - case DisplayServer::CURSOR_BDIAGSIZE: + case DisplayServerEnums::CURSOR_BDIAGSIZE: return "nesw-resize"; - case DisplayServer::CURSOR_FDIAGSIZE: + case DisplayServerEnums::CURSOR_FDIAGSIZE: return "nwse-resize"; - case DisplayServer::CURSOR_MOVE: + case DisplayServerEnums::CURSOR_MOVE: return "move"; - case DisplayServer::CURSOR_VSPLIT: + case DisplayServerEnums::CURSOR_VSPLIT: return "row-resize"; - case DisplayServer::CURSOR_HSPLIT: + case DisplayServerEnums::CURSOR_HSPLIT: return "col-resize"; - case DisplayServer::CURSOR_HELP: + case DisplayServerEnums::CURSOR_HELP: return "help"; default: return "default"; @@ -441,7 +441,7 @@ void DisplayServerWeb::tts_speak(const String &p_text, const String &p_voice, in } if (p_text.is_empty()) { - tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, p_utterance_id); + tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, p_utterance_id); return; } @@ -461,7 +461,7 @@ void DisplayServerWeb::tts_resume() { void DisplayServerWeb::tts_stop() { for (const KeyValue &E : utterance_ids) { - tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, E.key); + tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, E.key); } utterance_ids.clear(); godot_js_tts_stop(); @@ -482,7 +482,7 @@ void DisplayServerWeb::_js_utterance_callback(int p_event, int64_t p_id, int p_p DisplayServerWeb *ds = (DisplayServerWeb *)DisplayServer::get_singleton(); if (ds->utterance_ids.has(p_id)) { int pos = 0; - if ((TTSUtteranceEvent)p_event == DisplayServer::TTS_UTTERANCE_BOUNDARY) { + if ((DisplayServerEnums::TTSUtteranceEvent)p_event == DisplayServerEnums::TTS_UTTERANCE_BOUNDARY) { // Convert position from UTF-8 to UTF-32. const CharString &string = ds->utterance_ids[p_id]; for (int i = 0; i < MIN(p_pos, string.length()); i++) { @@ -496,15 +496,15 @@ void DisplayServerWeb::_js_utterance_callback(int p_event, int64_t p_id, int p_p } pos++; } - } else if ((TTSUtteranceEvent)p_event != DisplayServer::TTS_UTTERANCE_STARTED) { + } else if ((DisplayServerEnums::TTSUtteranceEvent)p_event != DisplayServerEnums::TTS_UTTERANCE_STARTED) { ds->utterance_ids.erase(p_id); } - ds->tts_post_utterance_event((TTSUtteranceEvent)p_event, p_id, pos); + ds->tts_post_utterance_event((DisplayServerEnums::TTSUtteranceEvent)p_event, p_id, pos); } } -void DisplayServerWeb::cursor_set_shape(CursorShape p_shape) { - ERR_FAIL_INDEX(p_shape, CURSOR_MAX); +void DisplayServerWeb::cursor_set_shape(DisplayServerEnums::CursorShape p_shape) { + ERR_FAIL_INDEX(p_shape, DisplayServerEnums::CURSOR_MAX); if (cursor_shape == p_shape) { return; } @@ -512,12 +512,12 @@ void DisplayServerWeb::cursor_set_shape(CursorShape p_shape) { godot_js_display_cursor_set_shape(godot2dom_cursor(cursor_shape)); } -DisplayServer::CursorShape DisplayServerWeb::cursor_get_shape() const { +DisplayServerEnums::CursorShape DisplayServerWeb::cursor_get_shape() const { return cursor_shape; } -void DisplayServerWeb::cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) { - ERR_FAIL_INDEX(p_shape, CURSOR_MAX); +void DisplayServerWeb::cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape, const Vector2 &p_hotspot) { + ERR_FAIL_INDEX(p_shape, DisplayServerEnums::CURSOR_MAX); if (p_cursor.is_valid()) { Ref image = _get_cursor_image_from_resource(p_cursor, p_hotspot); ERR_FAIL_COND(image.is_null()); @@ -553,31 +553,31 @@ void DisplayServerWeb::cursor_set_custom_image(const Ref &p_cursor, Cu // Mouse mode void DisplayServerWeb::_mouse_update_mode() { - MouseMode wanted_mouse_mode = mouse_mode_override_enabled + DisplayServerEnums::MouseMode wanted_mouse_mode = mouse_mode_override_enabled ? mouse_mode_override : mouse_mode_base; - ERR_FAIL_COND_MSG(wanted_mouse_mode == MOUSE_MODE_CONFINED || wanted_mouse_mode == MOUSE_MODE_CONFINED_HIDDEN, "MOUSE_MODE_CONFINED is not supported for the Web platform."); + ERR_FAIL_COND_MSG(wanted_mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED || wanted_mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN, "DisplayServerEnums::MOUSE_MODE_CONFINED is not supported for the Web platform."); if (wanted_mouse_mode == mouse_get_mode()) { return; } - if (wanted_mouse_mode == MOUSE_MODE_VISIBLE) { + if (wanted_mouse_mode == DisplayServerEnums::MOUSE_MODE_VISIBLE) { godot_js_display_cursor_set_visible(1); godot_js_display_cursor_lock_set(0); - } else if (wanted_mouse_mode == MOUSE_MODE_HIDDEN) { + } else if (wanted_mouse_mode == DisplayServerEnums::MOUSE_MODE_HIDDEN) { godot_js_display_cursor_set_visible(0); godot_js_display_cursor_lock_set(0); - } else if (wanted_mouse_mode == MOUSE_MODE_CAPTURED) { + } else if (wanted_mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { godot_js_display_cursor_set_visible(1); godot_js_display_cursor_lock_set(1); } } -void DisplayServerWeb::mouse_set_mode(MouseMode p_mode) { - ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); +void DisplayServerWeb::mouse_set_mode(DisplayServerEnums::MouseMode p_mode) { + ERR_FAIL_INDEX(p_mode, DisplayServerEnums::MouseMode::MOUSE_MODE_MAX); if (mouse_mode_override_enabled) { mouse_mode_base = p_mode; @@ -593,19 +593,19 @@ void DisplayServerWeb::mouse_set_mode(MouseMode p_mode) { _mouse_update_mode(); } -DisplayServer::MouseMode DisplayServerWeb::mouse_get_mode() const { +DisplayServerEnums::MouseMode DisplayServerWeb::mouse_get_mode() const { if (godot_js_display_cursor_is_hidden()) { - return MOUSE_MODE_HIDDEN; + return DisplayServerEnums::MOUSE_MODE_HIDDEN; } if (godot_js_display_cursor_is_locked()) { - return MOUSE_MODE_CAPTURED; + return DisplayServerEnums::MOUSE_MODE_CAPTURED; } - return MOUSE_MODE_VISIBLE; + return DisplayServerEnums::MOUSE_MODE_VISIBLE; } -void DisplayServerWeb::mouse_set_mode_override(MouseMode p_mode) { - ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); +void DisplayServerWeb::mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) { + ERR_FAIL_INDEX(p_mode, DisplayServerEnums::MouseMode::MOUSE_MODE_MAX); if (!mouse_mode_override_enabled) { mouse_mode_override = p_mode; @@ -621,7 +621,7 @@ void DisplayServerWeb::mouse_set_mode_override(MouseMode p_mode) { _mouse_update_mode(); } -DisplayServer::MouseMode DisplayServerWeb::mouse_get_mode_override() const { +DisplayServerEnums::MouseMode DisplayServerWeb::mouse_get_mode_override() const { return mouse_mode_override; } @@ -821,7 +821,7 @@ void DisplayServerWeb::_vk_input_text_callback(const String &p_text, int p_curso } } -void DisplayServerWeb::virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect, VirtualKeyboardType p_type, int p_max_input_length, int p_cursor_start, int p_cursor_end) { +void DisplayServerWeb::virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect, DisplayServerEnums::VirtualKeyboardType p_type, int p_max_input_length, int p_cursor_start, int p_cursor_end) { godot_js_display_vk_show(p_existing_text.utf8().get_data(), p_type, p_cursor_start, p_cursor_end); } @@ -954,12 +954,12 @@ void DisplayServerWeb::_ime_callback(int p_type, const String &p_text) { Input::get_singleton()->flush_buffered_events(); } -void DisplayServerWeb::window_set_ime_active(const bool p_active, WindowID p_window) { +void DisplayServerWeb::window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window) { ime_active = p_active; godot_js_set_ime_active(p_active); } -void DisplayServerWeb::window_set_ime_position(const Point2i &p_pos, WindowID p_window) { +void DisplayServerWeb::window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window) { godot_js_set_ime_position(p_pos.x, p_pos.y); } @@ -1054,10 +1054,10 @@ void DisplayServerWeb::_send_window_event_callback(int p_notification) { if (!ds) { return; } - if (p_notification == DisplayServer::WINDOW_EVENT_MOUSE_ENTER || p_notification == DisplayServer::WINDOW_EVENT_MOUSE_EXIT) { - ds->cursor_inside_canvas = p_notification == DisplayServer::WINDOW_EVENT_MOUSE_ENTER; + if (p_notification == DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER || p_notification == DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT) { + ds->cursor_inside_canvas = p_notification == DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER; } - if (godot_js_is_ime_focused() && (p_notification == DisplayServer::WINDOW_EVENT_FOCUS_IN || p_notification == DisplayServer::WINDOW_EVENT_FOCUS_OUT)) { + if (godot_js_is_ime_focused() && (p_notification == DisplayServerEnums::WINDOW_EVENT_FOCUS_IN || p_notification == DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT)) { return; } if (ds->window_event_callback.is_valid()) { @@ -1110,11 +1110,11 @@ void DisplayServerWeb::_dispatch_input_event(const Ref &p_event) { } } -DisplayServer *DisplayServerWeb::create_func(const String &p_rendering_driver, WindowMode p_window_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Point2i *p_position, const Size2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServer *DisplayServerWeb::create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_window_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Point2i *p_position, const Size2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { return memnew(DisplayServerWeb(p_rendering_driver, p_window_mode, p_vsync_mode, p_flags, p_position, p_resolution, p_screen, p_context, p_parent_window, r_error)); } -DisplayServerWeb::DisplayServerWeb(const String &p_rendering_driver, WindowMode p_window_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Point2i *p_position, const Size2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServerWeb::DisplayServerWeb(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_window_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Point2i *p_position, const Size2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { r_error = OK; // Always succeeds for now. native_menu = memnew(NativeMenu); // Dummy native menu. @@ -1123,7 +1123,7 @@ DisplayServerWeb::DisplayServerWeb(const String &p_rendering_driver, WindowMode godot_js_config_canvas_id_get(canvas_id, 256); // Handle contextmenu, webglcontextlost - godot_js_display_setup_canvas(p_resolution.x, p_resolution.y, (p_window_mode == WINDOW_MODE_FULLSCREEN || p_window_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN), OS::get_singleton()->is_hidpi_allowed() ? 1 : 0); + godot_js_display_setup_canvas(p_resolution.x, p_resolution.y, (p_window_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN || p_window_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN), OS::get_singleton()->is_hidpi_allowed() ? 1 : 0); // Check if it's windows. swap_cancel_ok = godot_js_display_is_swap_ok_cancel() == 1; @@ -1176,10 +1176,10 @@ DisplayServerWeb::DisplayServerWeb(const String &p_rendering_driver, WindowMode godot_js_display_fullscreen_cb(&DisplayServerWeb::fullscreen_change_callback); godot_js_display_window_blur_cb(&DisplayServerWeb::window_blur_callback); godot_js_display_notification_cb(&DisplayServerWeb::send_window_event_callback, - WINDOW_EVENT_MOUSE_ENTER, - WINDOW_EVENT_MOUSE_EXIT, - WINDOW_EVENT_FOCUS_IN, - WINDOW_EVENT_FOCUS_OUT); + DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER, + DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT, + DisplayServerEnums::WINDOW_EVENT_FOCUS_IN, + DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT); godot_js_display_vk_cb(&DisplayServerWeb::vk_input_text_callback); Input::get_singleton()->set_event_dispatch_function(_dispatch_input_event); @@ -1198,37 +1198,37 @@ DisplayServerWeb::~DisplayServerWeb() { #endif } -bool DisplayServerWeb::has_feature(Feature p_feature) const { +bool DisplayServerWeb::has_feature(DisplayServerEnums::Feature p_feature) const { switch (p_feature) { #ifndef DISABLE_DEPRECATED - case FEATURE_GLOBAL_MENU: { + case DisplayServerEnums::FEATURE_GLOBAL_MENU: { return (native_menu && native_menu->has_feature(NativeMenu::FEATURE_GLOBAL_MENU)); } break; #endif - //case FEATURE_HIDPI: - case FEATURE_ICON: - case FEATURE_CLIPBOARD: - case FEATURE_CURSOR_SHAPE: - case FEATURE_CUSTOM_CURSOR_SHAPE: - case FEATURE_MOUSE: - case FEATURE_TOUCHSCREEN: + //case DisplayServerEnums::FEATURE_HIDPI: + case DisplayServerEnums::FEATURE_ICON: + case DisplayServerEnums::FEATURE_CLIPBOARD: + case DisplayServerEnums::FEATURE_CURSOR_SHAPE: + case DisplayServerEnums::FEATURE_CUSTOM_CURSOR_SHAPE: + case DisplayServerEnums::FEATURE_MOUSE: + case DisplayServerEnums::FEATURE_TOUCHSCREEN: return true; - //case FEATURE_MOUSE_WARP: - //case FEATURE_NATIVE_DIALOG: - //case FEATURE_NATIVE_DIALOG_INPUT: - //case FEATURE_NATIVE_DIALOG_FILE: - //case FEATURE_NATIVE_DIALOG_FILE_EXTRA: - //case FEATURE_NATIVE_DIALOG_FILE_MIME: - //case FEATURE_NATIVE_ICON: - //case FEATURE_WINDOW_TRANSPARENCY: - //case FEATURE_KEEP_SCREEN_ON: - //case FEATURE_ORIENTATION: - case FEATURE_IME: + //case DisplayServerEnums::FEATURE_MOUSE_WARP: + //case DisplayServerEnums::FEATURE_NATIVE_DIALOG: + //case DisplayServerEnums::FEATURE_NATIVE_DIALOG_INPUT: + //case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE: + //case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_EXTRA: + //case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_MIME: + //case DisplayServerEnums::FEATURE_NATIVE_ICON: + //case DisplayServerEnums::FEATURE_WINDOW_TRANSPARENCY: + //case DisplayServerEnums::FEATURE_KEEP_SCREEN_ON: + //case DisplayServerEnums::FEATURE_ORIENTATION: + case DisplayServerEnums::FEATURE_IME: // IME does not work with experimental VK support. return godot_js_display_vk_available() == 0; - case FEATURE_VIRTUAL_KEYBOARD: + case DisplayServerEnums::FEATURE_VIRTUAL_KEYBOARD: return godot_js_display_vk_available() != 0; - case FEATURE_TEXT_TO_SPEECH: + case DisplayServerEnums::FEATURE_TEXT_TO_SPEECH: return godot_js_display_tts_available() != 0; default: return false; @@ -1303,158 +1303,158 @@ float DisplayServerWeb::screen_get_refresh_rate(int p_screen) const { return SCREEN_REFRESH_RATE_FALLBACK; // Web doesn't have much of a need for the screen refresh rate, and there's no native way to do so. } -Vector DisplayServerWeb::get_window_list() const { - Vector ret; - ret.push_back(MAIN_WINDOW_ID); +Vector DisplayServerWeb::get_window_list() const { + Vector ret; + ret.push_back(DisplayServerEnums::MAIN_WINDOW_ID); return ret; } -DisplayServerWeb::WindowID DisplayServerWeb::get_window_at_screen_position(const Point2i &p_position) const { - return MAIN_WINDOW_ID; +DisplayServerEnums::WindowID DisplayServerWeb::get_window_at_screen_position(const Point2i &p_position) const { + return DisplayServerEnums::MAIN_WINDOW_ID; } -void DisplayServerWeb::window_attach_instance_id(ObjectID p_instance, WindowID p_window) { +void DisplayServerWeb::window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window) { window_attached_instance_id = p_instance; } -ObjectID DisplayServerWeb::window_get_attached_instance_id(WindowID p_window) const { +ObjectID DisplayServerWeb::window_get_attached_instance_id(DisplayServerEnums::WindowID p_window) const { return window_attached_instance_id; } -void DisplayServerWeb::window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerWeb::window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { rect_changed_callback = p_callable; } -void DisplayServerWeb::window_set_window_event_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerWeb::window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { window_event_callback = p_callable; } -void DisplayServerWeb::window_set_input_event_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerWeb::window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { input_event_callback = p_callable; } -void DisplayServerWeb::window_set_input_text_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerWeb::window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { input_text_callback = p_callable; } -void DisplayServerWeb::window_set_drop_files_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerWeb::window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { drop_files_callback = p_callable; } -void DisplayServerWeb::window_set_title(const String &p_title, WindowID p_window) { +void DisplayServerWeb::window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window) { godot_js_display_window_title_set(p_title.utf8().get_data()); } -int DisplayServerWeb::window_get_current_screen(WindowID p_window) const { - ERR_FAIL_COND_V(p_window != MAIN_WINDOW_ID, INVALID_SCREEN); +int DisplayServerWeb::window_get_current_screen(DisplayServerEnums::WindowID p_window) const { + ERR_FAIL_COND_V(p_window != DisplayServerEnums::MAIN_WINDOW_ID, DisplayServerEnums::INVALID_SCREEN); return 0; } -void DisplayServerWeb::window_set_current_screen(int p_screen, WindowID p_window) { +void DisplayServerWeb::window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window) { // Not implemented. } -Point2i DisplayServerWeb::window_get_position(WindowID p_window) const { +Point2i DisplayServerWeb::window_get_position(DisplayServerEnums::WindowID p_window) const { return Point2i(); } -Point2i DisplayServerWeb::window_get_position_with_decorations(WindowID p_window) const { +Point2i DisplayServerWeb::window_get_position_with_decorations(DisplayServerEnums::WindowID p_window) const { return Point2i(); } -void DisplayServerWeb::window_set_position(const Point2i &p_position, WindowID p_window) { +void DisplayServerWeb::window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window) { // Not supported. } -void DisplayServerWeb::window_set_transient(WindowID p_window, WindowID p_parent) { +void DisplayServerWeb::window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) { // Not supported. } -void DisplayServerWeb::window_set_max_size(const Size2i p_size, WindowID p_window) { +void DisplayServerWeb::window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { // Not supported. } -Size2i DisplayServerWeb::window_get_max_size(WindowID p_window) const { +Size2i DisplayServerWeb::window_get_max_size(DisplayServerEnums::WindowID p_window) const { return Size2i(); } -void DisplayServerWeb::window_set_min_size(const Size2i p_size, WindowID p_window) { +void DisplayServerWeb::window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { // Not supported. } -Size2i DisplayServerWeb::window_get_min_size(WindowID p_window) const { +Size2i DisplayServerWeb::window_get_min_size(DisplayServerEnums::WindowID p_window) const { return Size2i(); } -void DisplayServerWeb::window_set_size(const Size2i p_size, WindowID p_window) { +void DisplayServerWeb::window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { godot_js_display_desired_size_set(p_size.x, p_size.y); } -Size2i DisplayServerWeb::window_get_size(WindowID p_window) const { +Size2i DisplayServerWeb::window_get_size(DisplayServerEnums::WindowID p_window) const { int size[2]; godot_js_display_window_size_get(size, size + 1); return Size2i(size[0], size[1]); } -Size2i DisplayServerWeb::window_get_size_with_decorations(WindowID p_window) const { +Size2i DisplayServerWeb::window_get_size_with_decorations(DisplayServerEnums::WindowID p_window) const { return window_get_size(p_window); } -void DisplayServerWeb::window_set_mode(WindowMode p_mode, WindowID p_window) { +void DisplayServerWeb::window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window) { if (window_mode == p_mode) { return; } switch (p_mode) { - case WINDOW_MODE_WINDOWED: { - if (window_mode == WINDOW_MODE_FULLSCREEN) { + case DisplayServerEnums::WINDOW_MODE_WINDOWED: { + if (window_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN) { godot_js_display_fullscreen_exit(); } - window_mode = WINDOW_MODE_WINDOWED; + window_mode = DisplayServerEnums::WINDOW_MODE_WINDOWED; } break; - case WINDOW_MODE_EXCLUSIVE_FULLSCREEN: - case WINDOW_MODE_FULLSCREEN: { + case DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN: + case DisplayServerEnums::WINDOW_MODE_FULLSCREEN: { int result = godot_js_display_fullscreen_request(); ERR_FAIL_COND_MSG(result, "The request was denied. Remember that enabling fullscreen is only possible from an input callback for the Web platform."); } break; - case WINDOW_MODE_MAXIMIZED: - case WINDOW_MODE_MINIMIZED: - // WindowMode MAXIMIZED and MINIMIZED are not supported in Web platform. + case DisplayServerEnums::WINDOW_MODE_MAXIMIZED: + case DisplayServerEnums::WINDOW_MODE_MINIMIZED: + // DisplayServerEnums::WindowMode MAXIMIZED and MINIMIZED are not supported in Web platform. break; default: break; } } -DisplayServerWeb::WindowMode DisplayServerWeb::window_get_mode(WindowID p_window) const { +DisplayServerEnums::WindowMode DisplayServerWeb::window_get_mode(DisplayServerEnums::WindowID p_window) const { return window_mode; } -bool DisplayServerWeb::window_is_maximize_allowed(WindowID p_window) const { +bool DisplayServerWeb::window_is_maximize_allowed(DisplayServerEnums::WindowID p_window) const { return false; } -void DisplayServerWeb::window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window) { +void DisplayServerWeb::window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window) { // Not supported. } -bool DisplayServerWeb::window_get_flag(WindowFlags p_flag, WindowID p_window) const { +bool DisplayServerWeb::window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window) const { return false; } -void DisplayServerWeb::window_request_attention(WindowID p_window) { +void DisplayServerWeb::window_request_attention(DisplayServerEnums::WindowID p_window) { // Not supported. } -void DisplayServerWeb::window_move_to_foreground(WindowID p_window) { +void DisplayServerWeb::window_move_to_foreground(DisplayServerEnums::WindowID p_window) { // Not supported. } -bool DisplayServerWeb::window_is_focused(WindowID p_window) const { +bool DisplayServerWeb::window_is_focused(DisplayServerEnums::WindowID p_window) const { return true; } -bool DisplayServerWeb::window_can_draw(WindowID p_window) const { +bool DisplayServerWeb::window_can_draw(DisplayServerEnums::WindowID p_window) const { return true; } @@ -1462,8 +1462,8 @@ bool DisplayServerWeb::can_any_window_draw() const { return true; } -DisplayServer::VSyncMode DisplayServerWeb::window_get_vsync_mode(WindowID p_vsync_mode) const { - return DisplayServer::VSYNC_ENABLED; +DisplayServerEnums::VSyncMode DisplayServerWeb::window_get_vsync_mode(DisplayServerEnums::WindowID p_vsync_mode) const { + return DisplayServerEnums::VSYNC_ENABLED; } void DisplayServerWeb::process_events() { diff --git a/platform/web/display_server_web.h b/platform/web/display_server_web.h index 7983b5eb8817..1e480fa8f432 100644 --- a/platform/web/display_server_web.h +++ b/platform/web/display_server_web.h @@ -66,7 +66,7 @@ class DisplayServerWeb : public DisplayServer { HashMap utterance_ids; - WindowMode window_mode = WINDOW_MODE_WINDOWED; + DisplayServerEnums::WindowMode window_mode = DisplayServerEnums::WINDOW_MODE_WINDOWED; ObjectID window_attached_instance_id = {}; Callable rect_changed_callback; @@ -82,7 +82,7 @@ class DisplayServerWeb : public DisplayServer { char canvas_id[256] = { 0 }; bool cursor_inside_canvas = true; - CursorShape cursor_shape = CURSOR_ARROW; + DisplayServerEnums::CursorShape cursor_shape = DisplayServerEnums::CURSOR_ARROW; Point2i last_click_pos = Point2(-100, -100); // TODO check this again. uint64_t last_click_ms = 0; MouseButton last_click_button_index = MouseButton::NONE; @@ -112,14 +112,14 @@ class DisplayServerWeb : public DisplayServer { int gamepad_count = 0; - MouseMode mouse_mode_base = MOUSE_MODE_VISIBLE; - MouseMode mouse_mode_override = MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode_base = DisplayServerEnums::MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode_override = DisplayServerEnums::MOUSE_MODE_VISIBLE; bool mouse_mode_override_enabled = false; void _mouse_update_mode(); // utilities static void dom2godot_mod(Ref ev, int p_mod, Key p_keycode); - static const char *godot2dom_cursor(DisplayServer::CursorShape p_shape); + static const char *godot2dom_cursor(DisplayServerEnums::CursorShape p_shape); // events WASM_EXPORT static void fullscreen_change_callback(int p_fullscreen); @@ -159,7 +159,7 @@ class DisplayServerWeb : public DisplayServer { void process_keys(); static Vector get_rendering_drivers_func(); - static DisplayServer *create_func(const String &p_rendering_driver, WindowMode p_window_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + static DisplayServer *create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_window_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); static void _dispatch_input_event(const Ref &p_event); @@ -174,7 +174,7 @@ class DisplayServerWeb : public DisplayServer { bool check_size_force_redraw(); // from DisplayServer - virtual bool has_feature(Feature p_feature) const override; + virtual bool has_feature(DisplayServerEnums::Feature p_feature) const override; virtual String get_name() const override; // tts @@ -188,23 +188,23 @@ class DisplayServerWeb : public DisplayServer { virtual void tts_stop() override; // cursor - virtual void cursor_set_shape(CursorShape p_shape) override; - virtual CursorShape cursor_get_shape() const override; - virtual void cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape = CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()) override; + virtual void cursor_set_shape(DisplayServerEnums::CursorShape p_shape) override; + virtual DisplayServerEnums::CursorShape cursor_get_shape() const override; + virtual void cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape = DisplayServerEnums::CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()) override; // mouse - virtual void mouse_set_mode(MouseMode p_mode) override; - virtual MouseMode mouse_get_mode() const override; - virtual void mouse_set_mode_override(MouseMode p_mode) override; - virtual MouseMode mouse_get_mode_override() const override; + virtual void mouse_set_mode(DisplayServerEnums::MouseMode p_mode) override; + virtual DisplayServerEnums::MouseMode mouse_get_mode() const override; + virtual void mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) override; + virtual DisplayServerEnums::MouseMode mouse_get_mode_override() const override; virtual void mouse_set_mode_override_enabled(bool p_override_enabled) override; virtual bool mouse_is_mode_override_enabled() const override; virtual Point2i mouse_get_position() const override; // ime - virtual void window_set_ime_active(const bool p_active, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_ime_position(const Point2i &p_pos, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; virtual Point2i ime_get_selection() const override; virtual String ime_get_text() const override; @@ -219,71 +219,71 @@ class DisplayServerWeb : public DisplayServer { // screen virtual int get_screen_count() const override; virtual int get_primary_screen() const override; - virtual Point2i screen_get_position(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Size2i screen_get_size(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Rect2i screen_get_usable_rect(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual int screen_get_dpi(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_scale(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_refresh_rate(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual Point2i screen_get_position(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Size2i screen_get_size(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Rect2i screen_get_usable_rect(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual int screen_get_dpi(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_scale(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_refresh_rate(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; virtual void screen_set_keep_on(bool p_enable) override {} - virtual void virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2(), VirtualKeyboardType p_type = KEYBOARD_TYPE_DEFAULT, int p_max_input_length = -1, int p_cursor_start = -1, int p_cursor_end = -1) override; + virtual void virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2(), DisplayServerEnums::VirtualKeyboardType p_type = DisplayServerEnums::KEYBOARD_TYPE_DEFAULT, int p_max_input_length = -1, int p_cursor_start = -1, int p_cursor_end = -1) override; virtual void virtual_keyboard_hide() override; // windows - virtual Vector get_window_list() const override; - virtual WindowID get_window_at_screen_position(const Point2i &p_position) const override; + virtual Vector get_window_list() const override; + virtual DisplayServerEnums::WindowID get_window_at_screen_position(const Point2i &p_position) const override; - virtual void window_attach_instance_id(ObjectID p_instance, WindowID p_window = MAIN_WINDOW_ID) override; - virtual ObjectID window_get_attached_instance_id(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual ObjectID window_get_attached_instance_id(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_window_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_text_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_drop_files_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_title(const String &p_title, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual int window_get_current_screen(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_current_screen(int p_screen, WindowID p_window = MAIN_WINDOW_ID) override; + virtual int window_get_current_screen(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual Point2i window_get_position(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Point2i window_get_position_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_position(const Point2i &p_position, WindowID p_window = MAIN_WINDOW_ID) override; + virtual Point2i window_get_position(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Point2i window_get_position_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_transient(WindowID p_window, WindowID p_parent) override; + virtual void window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) override; - virtual void window_set_max_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_max_size(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_max_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_min_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_min_size(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_min_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_size(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Size2i window_get_size_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Size2i window_get_size_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_mode(WindowMode p_mode, WindowID p_window = MAIN_WINDOW_ID) override; - virtual WindowMode window_get_mode(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::WindowMode window_get_mode(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual bool window_is_maximize_allowed(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_is_maximize_allowed(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_get_flag(WindowFlags p_flag, WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_request_attention(WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_move_to_foreground(WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_is_focused(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_request_attention(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_move_to_foreground(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_is_focused(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual bool window_can_draw(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_can_draw(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; virtual bool can_any_window_draw() const override; - virtual void window_set_vsync_mode(VSyncMode p_vsync_mode, WindowID p_window = MAIN_WINDOW_ID) override {} - virtual DisplayServer::VSyncMode window_get_vsync_mode(WindowID p_vsync_mode) const override; + virtual void window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + virtual DisplayServerEnums::VSyncMode window_get_vsync_mode(DisplayServerEnums::WindowID p_vsync_mode) const override; // events virtual void process_events() override; @@ -296,6 +296,6 @@ class DisplayServerWeb : public DisplayServer { virtual void swap_buffers() override; static void register_web_driver(); - DisplayServerWeb(const String &p_rendering_driver, WindowMode p_window_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Point2i *p_position, const Size2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + DisplayServerWeb(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_window_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Point2i *p_position, const Size2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); ~DisplayServerWeb(); }; diff --git a/platform/web/js/libs/library_godot_display.js b/platform/web/js/libs/library_godot_display.js index 747db850e8b4..81172591155e 100644 --- a/platform/web/js/libs/library_godot_display.js +++ b/platform/web/js/libs/library_godot_display.js @@ -95,34 +95,34 @@ const GodotDisplayVK = { let elem = GodotDisplayVK.textinput; switch (type) { - case 0: // KEYBOARD_TYPE_DEFAULT + case 0: // DisplayServerEnums::KEYBOARD_TYPE_DEFAULT elem.type = 'text'; elem.inputmode = ''; break; - case 1: // KEYBOARD_TYPE_MULTILINE + case 1: // DisplayServerEnums::KEYBOARD_TYPE_MULTILINE elem = GodotDisplayVK.textarea; break; - case 2: // KEYBOARD_TYPE_NUMBER + case 2: // DisplayServerEnums::KEYBOARD_TYPE_NUMBER elem.type = 'text'; elem.inputmode = 'numeric'; break; - case 3: // KEYBOARD_TYPE_NUMBER_DECIMAL + case 3: // DisplayServerEnums::KEYBOARD_TYPE_NUMBER_DECIMAL elem.type = 'text'; elem.inputmode = 'decimal'; break; - case 4: // KEYBOARD_TYPE_PHONE + case 4: // DisplayServerEnums::KEYBOARD_TYPE_PHONE elem.type = 'tel'; elem.inputmode = ''; break; - case 5: // KEYBOARD_TYPE_EMAIL_ADDRESS + case 5: // DisplayServerEnums::KEYBOARD_TYPE_EMAIL_ADDRESS elem.type = 'email'; elem.inputmode = ''; break; - case 6: // KEYBOARD_TYPE_PASSWORD + case 6: // DisplayServerEnums::KEYBOARD_TYPE_PASSWORD elem.type = 'password'; elem.inputmode = ''; break; - case 7: // KEYBOARD_TYPE_URL + case 7: // DisplayServerEnums::KEYBOARD_TYPE_URL elem.type = 'url'; elem.inputmode = ''; break; @@ -403,19 +403,19 @@ const GodotDisplay = { const func = GodotRuntime.get_func(p_callback); function listener_end(evt) { - evt.currentTarget.cb(1 /* TTS_UTTERANCE_ENDED */, evt.currentTarget.id, 0); + evt.currentTarget.cb(1 /* DisplayServerEnums::TTS_UTTERANCE_ENDED */, evt.currentTarget.id, 0); } function listener_start(evt) { - evt.currentTarget.cb(0 /* TTS_UTTERANCE_STARTED */, evt.currentTarget.id, 0); + evt.currentTarget.cb(0 /* DisplayServerEnums::TTS_UTTERANCE_STARTED */, evt.currentTarget.id, 0); } function listener_error(evt) { - evt.currentTarget.cb(2 /* TTS_UTTERANCE_CANCELED */, evt.currentTarget.id, 0); + evt.currentTarget.cb(2 /* DisplayServerEnums::TTS_UTTERANCE_CANCELED */, evt.currentTarget.id, 0); } function listener_bound(evt) { - evt.currentTarget.cb(3 /* TTS_UTTERANCE_BOUNDARY */, evt.currentTarget.id, evt.charIndex); + evt.currentTarget.cb(3 /* DisplayServerEnums::TTS_UTTERANCE_BOUNDARY */, evt.currentTarget.id, evt.charIndex); } const utterance = new SpeechSynthesisUtterance(GodotRuntime.parseString(p_text)); diff --git a/platform/windows/display_server_windows.cpp b/platform/windows/display_server_windows.cpp index d55689b2af66..83a596334dac 100644 --- a/platform/windows/display_server_windows.cpp +++ b/platform/windows/display_server_windows.cpp @@ -118,44 +118,44 @@ static void track_mouse_leave_event(HWND hWnd) { TrackMouseEvent(&tme); } -bool DisplayServerWindows::has_feature(Feature p_feature) const { +bool DisplayServerWindows::has_feature(DisplayServerEnums::Feature p_feature) const { switch (p_feature) { #ifndef DISABLE_DEPRECATED - case FEATURE_GLOBAL_MENU: { + case DisplayServerEnums::FEATURE_GLOBAL_MENU: { return (native_menu && native_menu->has_feature(NativeMenu::FEATURE_GLOBAL_MENU)); } break; #endif - case FEATURE_SUBWINDOWS: - case FEATURE_TOUCHSCREEN: - case FEATURE_MOUSE: - case FEATURE_MOUSE_WARP: - case FEATURE_CLIPBOARD: - case FEATURE_CURSOR_SHAPE: - case FEATURE_CUSTOM_CURSOR_SHAPE: - case FEATURE_IME: - case FEATURE_WINDOW_TRANSPARENCY: - case FEATURE_HIDPI: - case FEATURE_ICON: - case FEATURE_NATIVE_ICON: - case FEATURE_NATIVE_DIALOG: - case FEATURE_NATIVE_DIALOG_INPUT: - case FEATURE_NATIVE_DIALOG_FILE: - case FEATURE_NATIVE_DIALOG_FILE_EXTRA: - //case FEATURE_NATIVE_DIALOG_FILE_MIME: - case FEATURE_SWAP_BUFFERS: - case FEATURE_KEEP_SCREEN_ON: - case FEATURE_TEXT_TO_SPEECH: - case FEATURE_SCREEN_CAPTURE: - case FEATURE_STATUS_INDICATOR: - case FEATURE_WINDOW_EMBEDDING: - case FEATURE_WINDOW_DRAG: - case FEATURE_HDR_OUTPUT: + case DisplayServerEnums::FEATURE_SUBWINDOWS: + case DisplayServerEnums::FEATURE_TOUCHSCREEN: + case DisplayServerEnums::FEATURE_MOUSE: + case DisplayServerEnums::FEATURE_MOUSE_WARP: + case DisplayServerEnums::FEATURE_CLIPBOARD: + case DisplayServerEnums::FEATURE_CURSOR_SHAPE: + case DisplayServerEnums::FEATURE_CUSTOM_CURSOR_SHAPE: + case DisplayServerEnums::FEATURE_IME: + case DisplayServerEnums::FEATURE_WINDOW_TRANSPARENCY: + case DisplayServerEnums::FEATURE_HIDPI: + case DisplayServerEnums::FEATURE_ICON: + case DisplayServerEnums::FEATURE_NATIVE_ICON: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_INPUT: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE: + case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_EXTRA: + //case DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_MIME: + case DisplayServerEnums::FEATURE_SWAP_BUFFERS: + case DisplayServerEnums::FEATURE_KEEP_SCREEN_ON: + case DisplayServerEnums::FEATURE_TEXT_TO_SPEECH: + case DisplayServerEnums::FEATURE_SCREEN_CAPTURE: + case DisplayServerEnums::FEATURE_STATUS_INDICATOR: + case DisplayServerEnums::FEATURE_WINDOW_EMBEDDING: + case DisplayServerEnums::FEATURE_WINDOW_DRAG: + case DisplayServerEnums::FEATURE_HDR_OUTPUT: return true; - case FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE: + case DisplayServerEnums::FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE: return (os_ver.dwBuildNumber >= 19041); // Fully supported on Windows 10 Vibranium R1 (2004)+ only, captured as black rect on older versions. - case FEATURE_EMOJI_AND_SYMBOL_PICKER: + case DisplayServerEnums::FEATURE_EMOJI_AND_SYMBOL_PICKER: return (os_ver.dwBuildNumber >= 17134); // Windows 10 Redstone 4 (1803)+ only. - case FEATURE_ACCESSIBILITY_SCREEN_READER: { + case DisplayServerEnums::FEATURE_ACCESSIBILITY_SCREEN_READER: { return AccessibilityServer::get_singleton()->is_supported(); } break; default: @@ -210,8 +210,8 @@ Vector2i DisplayServerWindows::_get_screen_expand_offset(int p_screen) const { } } -void DisplayServerWindows::_set_mouse_mode_impl(MouseMode p_mode) { - if (p_mode == MOUSE_MODE_HIDDEN || p_mode == MOUSE_MODE_CAPTURED || p_mode == MOUSE_MODE_CONFINED_HIDDEN) { +void DisplayServerWindows::_set_mouse_mode_impl(DisplayServerEnums::MouseMode p_mode) { + if (p_mode == DisplayServerEnums::MOUSE_MODE_HIDDEN || p_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED || p_mode == DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN) { // Hide cursor before moving. if (hCursor == nullptr) { hCursor = SetCursor(nullptr); @@ -220,11 +220,11 @@ void DisplayServerWindows::_set_mouse_mode_impl(MouseMode p_mode) { } } - if (windows.has(MAIN_WINDOW_ID) && (p_mode == MOUSE_MODE_CAPTURED || p_mode == MOUSE_MODE_CONFINED || p_mode == MOUSE_MODE_CONFINED_HIDDEN)) { + if (windows.has(DisplayServerEnums::MAIN_WINDOW_ID) && (p_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED || p_mode == DisplayServerEnums::MOUSE_MODE_CONFINED || p_mode == DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN)) { // Mouse is grabbed (captured or confined). - WindowID window_id = _get_focused_window_or_popup(); + DisplayServerEnums::WindowID window_id = _get_focused_window_or_popup(); if (!windows.has(window_id)) { - window_id = MAIN_WINDOW_ID; + window_id = DisplayServerEnums::MAIN_WINDOW_ID; } WindowData &wd = windows[window_id]; @@ -238,7 +238,7 @@ void DisplayServerWindows::_set_mouse_mode_impl(MouseMode p_mode) { ClientToScreen(wd.hWnd, (POINT *)&clipRect.left); ClientToScreen(wd.hWnd, (POINT *)&clipRect.right); ClipCursor(&clipRect); - if (p_mode == MOUSE_MODE_CAPTURED) { + if (p_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { center = window_get_size() / 2; POINT pos = { (int)center.x, (int)center.y }; ClientToScreen(wd.hWnd, &pos); @@ -257,19 +257,19 @@ void DisplayServerWindows::_set_mouse_mode_impl(MouseMode p_mode) { } ClipCursor(nullptr); - _register_raw_input_devices(INVALID_WINDOW_ID); + _register_raw_input_devices(DisplayServerEnums::INVALID_WINDOW_ID); } - if (p_mode == MOUSE_MODE_VISIBLE || p_mode == MOUSE_MODE_CONFINED) { + if (p_mode == DisplayServerEnums::MOUSE_MODE_VISIBLE || p_mode == DisplayServerEnums::MOUSE_MODE_CONFINED) { // Show cursor. - CursorShape c = cursor_shape; - cursor_shape = CURSOR_MAX; + DisplayServerEnums::CursorShape c = cursor_shape; + cursor_shape = DisplayServerEnums::CURSOR_MAX; cursor_set_shape(c); } } -DisplayServer::WindowID DisplayServerWindows::_get_focused_window_or_popup() const { - const List::Element *E = popup_list.back(); +DisplayServerEnums::WindowID DisplayServerWindows::_get_focused_window_or_popup() const { + const List::Element *E = popup_list.back(); if (E) { return E->get(); } @@ -278,7 +278,7 @@ DisplayServer::WindowID DisplayServerWindows::_get_focused_window_or_popup() con } bool DisplayServerWindows::_has_moving_window() const { - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { if (E.value.move_timer_id) { return true; } @@ -286,7 +286,7 @@ bool DisplayServerWindows::_has_moving_window() const { return false; } -void DisplayServerWindows::_register_raw_input_devices(WindowID p_target_window) { +void DisplayServerWindows::_register_raw_input_devices(DisplayServerEnums::WindowID p_target_window) { use_raw_input = true; RAWINPUTDEVICE rid[2] = {}; @@ -298,7 +298,7 @@ void DisplayServerWindows::_register_raw_input_devices(WindowID p_target_window) rid[1].usUsage = 0x06; // HID_USAGE_GENERIC_KEYBOARD rid[1].dwFlags = 0; - if (p_target_window != INVALID_WINDOW_ID && windows.has(p_target_window)) { + if (p_target_window != DisplayServerEnums::INVALID_WINDOW_ID && windows.has(p_target_window)) { // Follow the defined window rid[0].hwndTarget = windows[p_target_window].hWnd; rid[1].hwndTarget = windows[p_target_window].hWnd; @@ -374,11 +374,11 @@ void DisplayServerWindows::tts_stop() { tts->stop(); } -Error DisplayServerWindows::file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, WindowID p_window_id) { +Error DisplayServerWindows::file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) { return _file_dialog_with_options_show(p_title, p_current_directory, String(), p_filename, p_show_hidden, p_mode, p_filters, TypedArray(), p_callback, false, p_window_id); } -Error DisplayServerWindows::file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, WindowID p_window_id) { +Error DisplayServerWindows::file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) { return _file_dialog_with_options_show(p_title, p_current_directory, p_root, p_filename, p_show_hidden, p_mode, p_filters, p_options, p_callback, true, p_window_id); } @@ -535,7 +535,7 @@ void DisplayServerWindows::_thread_fd_monitor(void *p_ud) { DisplayServerWindows *ds = static_cast(get_singleton()); FileDialogData *fd = (FileDialogData *)p_ud; - if (fd->mode < 0 && fd->mode >= DisplayServer::FILE_DIALOG_MODE_SAVE_MAX) { + if (fd->mode < 0 && fd->mode >= DisplayServerEnums::FILE_DIALOG_MODE_SAVE_MAX) { fd->finished.set(); return; } @@ -616,7 +616,7 @@ void DisplayServerWindows::_thread_fd_monitor(void *p_ud) { HRESULT hr = S_OK; IFileDialog *pfd = nullptr; - if (fd->mode == DisplayServer::FILE_DIALOG_MODE_SAVE_FILE) { + if (fd->mode == DisplayServerEnums::FILE_DIALOG_MODE_SAVE_FILE) { hr = CoCreateInstance(CLSID_FileSaveDialog, nullptr, CLSCTX_INPROC_SERVER, IID_IFileSaveDialog, (void **)&pfd); } else { hr = CoCreateInstance(CLSID_FileOpenDialog, nullptr, CLSCTX_INPROC_SERVER, IID_IFileOpenDialog, (void **)&pfd); @@ -645,10 +645,10 @@ void DisplayServerWindows::_thread_fd_monitor(void *p_ud) { DWORD flags; pfd->GetOptions(&flags); - if (fd->mode == DisplayServer::FILE_DIALOG_MODE_OPEN_FILES) { + if (fd->mode == DisplayServerEnums::FILE_DIALOG_MODE_OPEN_FILES) { flags |= FOS_ALLOWMULTISELECT; } - if (fd->mode == DisplayServer::FILE_DIALOG_MODE_OPEN_DIR) { + if (fd->mode == DisplayServerEnums::FILE_DIALOG_MODE_OPEN_DIR) { flags |= FOS_PICKFOLDERS; } if (fd->show_hidden) { @@ -703,7 +703,7 @@ void DisplayServerWindows::_thread_fd_monitor(void *p_ud) { if (SUCCEEDED(hr)) { Vector file_names; - if (fd->mode == DisplayServer::FILE_DIALOG_MODE_OPEN_FILES) { + if (fd->mode == DisplayServerEnums::FILE_DIALOG_MODE_OPEN_FILES) { IShellItemArray *results; hr = static_cast(pfd)->GetResults(&results); if (SUCCEEDED(hr)) { @@ -794,15 +794,15 @@ void DisplayServerWindows::_thread_fd_monitor(void *p_ud) { fd->finished.set(); - if (fd->window_id != INVALID_WINDOW_ID) { + if (fd->window_id != DisplayServerEnums::INVALID_WINDOW_ID) { callable_mp(DisplayServer::get_singleton(), &DisplayServer::window_move_to_foreground).call_deferred(fd->window_id); } } -Error DisplayServerWindows::_file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, bool p_options_in_cb, WindowID p_window_id) { +Error DisplayServerWindows::_file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, bool p_options_in_cb, DisplayServerEnums::WindowID p_window_id) { _THREAD_SAFE_METHOD_ - ERR_FAIL_INDEX_V(int(p_mode), FILE_DIALOG_MODE_SAVE_MAX, FAILED); + ERR_FAIL_INDEX_V(int(p_mode), DisplayServerEnums::FILE_DIALOG_MODE_SAVE_MAX, FAILED); String appname; if (Engine::get_singleton()->is_editor_hint()) { @@ -890,7 +890,7 @@ void DisplayServerWindows::beep() const { void DisplayServerWindows::_mouse_update_mode() { _THREAD_SAFE_METHOD_ - MouseMode wanted_mouse_mode = mouse_mode_override_enabled + DisplayServerEnums::MouseMode wanted_mouse_mode = mouse_mode_override_enabled ? mouse_mode_override : mouse_mode_base; @@ -904,8 +904,8 @@ void DisplayServerWindows::_mouse_update_mode() { _set_mouse_mode_impl(wanted_mouse_mode); } -void DisplayServerWindows::mouse_set_mode(MouseMode p_mode) { - ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); +void DisplayServerWindows::mouse_set_mode(DisplayServerEnums::MouseMode p_mode) { + ERR_FAIL_INDEX(p_mode, DisplayServerEnums::MouseMode::MOUSE_MODE_MAX); if (p_mode == mouse_mode_base) { return; } @@ -913,12 +913,12 @@ void DisplayServerWindows::mouse_set_mode(MouseMode p_mode) { _mouse_update_mode(); } -DisplayServer::MouseMode DisplayServerWindows::mouse_get_mode() const { +DisplayServerEnums::MouseMode DisplayServerWindows::mouse_get_mode() const { return mouse_mode; } -void DisplayServerWindows::mouse_set_mode_override(MouseMode p_mode) { - ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); +void DisplayServerWindows::mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) { + ERR_FAIL_INDEX(p_mode, DisplayServerEnums::MouseMode::MOUSE_MODE_MAX); if (p_mode == mouse_mode_override) { return; } @@ -926,7 +926,7 @@ void DisplayServerWindows::mouse_set_mode_override(MouseMode p_mode) { _mouse_update_mode(); } -DisplayServer::MouseMode DisplayServerWindows::mouse_get_mode_override() const { +DisplayServerEnums::MouseMode DisplayServerWindows::mouse_get_mode_override() const { return mouse_mode_override; } @@ -945,13 +945,13 @@ bool DisplayServerWindows::mouse_is_mode_override_enabled() const { void DisplayServerWindows::warp_mouse(const Point2i &p_position) { _THREAD_SAFE_METHOD_ - WindowID window_id = _get_focused_window_or_popup(); + DisplayServerEnums::WindowID window_id = _get_focused_window_or_popup(); if (!windows.has(window_id)) { return; // No focused window? } - if (mouse_mode == MOUSE_MODE_CAPTURED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { old_x = p_position.x; old_y = p_position.y; } else { @@ -995,7 +995,7 @@ BitField DisplayServerWindows::mouse_get_button_state() const { void DisplayServerWindows::clipboard_set(const String &p_text) { _THREAD_SAFE_METHOD_ - if (!windows.has(MAIN_WINDOW_ID)) { + if (!windows.has(DisplayServerEnums::MAIN_WINDOW_ID)) { return; } @@ -1003,7 +1003,7 @@ void DisplayServerWindows::clipboard_set(const String &p_text) { // Otherwise, line endings won't be visible when pasted in other software. String text = p_text.replace("\r\n", "\n").replace("\n", "\r\n"); // Avoid \r\r\n. - if (!OpenClipboard(windows[MAIN_WINDOW_ID].hWnd)) { + if (!OpenClipboard(windows[DisplayServerEnums::MAIN_WINDOW_ID].hWnd)) { ERR_FAIL_MSG("Unable to open clipboard."); } EmptyClipboard(); @@ -1036,12 +1036,12 @@ void DisplayServerWindows::clipboard_set(const String &p_text) { String DisplayServerWindows::clipboard_get() const { _THREAD_SAFE_METHOD_ - if (!windows.has(MAIN_WINDOW_ID)) { + if (!windows.has(DisplayServerEnums::MAIN_WINDOW_ID)) { return String(); } String ret; - if (!OpenClipboard(windows[MAIN_WINDOW_ID].hWnd)) { + if (!OpenClipboard(windows[DisplayServerEnums::MAIN_WINDOW_ID].hWnd)) { ERR_FAIL_V_MSG("", "Unable to open clipboard."); } @@ -1739,32 +1739,32 @@ bool DisplayServerWindows::screen_is_kept_on() const { return keep_screen_on; } -Vector DisplayServerWindows::get_window_list() const { +Vector DisplayServerWindows::get_window_list() const { _THREAD_SAFE_METHOD_ - Vector ret; - for (const KeyValue &E : windows) { + Vector ret; + for (const KeyValue &E : windows) { ret.push_back(E.key); } return ret; } -DisplayServer::WindowID DisplayServerWindows::get_window_at_screen_position(const Point2i &p_position) const { +DisplayServerEnums::WindowID DisplayServerWindows::get_window_at_screen_position(const Point2i &p_position) const { Point2i offset = _get_screens_origin(); POINT p; p.x = p_position.x + offset.x; p.y = p_position.y + offset.y; HWND hwnd = WindowFromPoint(p); - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { if (E.value.hWnd == hwnd) { return E.key; } } - return INVALID_WINDOW_ID; + return DisplayServerEnums::INVALID_WINDOW_ID; } -DisplayServer::WindowID DisplayServerWindows::create_sub_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, WindowID p_transient_parent) { +DisplayServerEnums::WindowID DisplayServerWindows::create_sub_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, DisplayServerEnums::WindowID p_transient_parent) { _THREAD_SAFE_METHOD_ bool no_redirection_bitmap = false; @@ -1772,9 +1772,9 @@ DisplayServer::WindowID DisplayServerWindows::create_sub_window(WindowMode p_mod no_redirection_bitmap = OS::get_singleton()->is_layered_allowed() && rendering_driver == "d3d12"; #endif - WindowID window_id = window_id_counter; + DisplayServerEnums::WindowID window_id = window_id_counter; Error err = _create_window(window_id, p_mode, p_flags, p_rect, p_exclusive, p_transient_parent, NULL, no_redirection_bitmap); - ERR_FAIL_COND_V_MSG(err != OK, INVALID_WINDOW_ID, "Failed to create sub window."); + ERR_FAIL_COND_V_MSG(err != OK, DisplayServerEnums::INVALID_WINDOW_ID, "Failed to create sub window."); ++window_id_counter; #ifdef RD_ENABLED @@ -1790,31 +1790,31 @@ DisplayServer::WindowID DisplayServerWindows::create_sub_window(WindowMode p_mod WindowData &wd = windows[window_id]; - if (p_flags & WINDOW_FLAG_RESIZE_DISABLED_BIT) { + if (p_flags & DisplayServerEnums::WINDOW_FLAG_RESIZE_DISABLED_BIT) { wd.resizable = false; } - if (p_flags & WINDOW_FLAG_MINIMIZE_DISABLED_BIT) { + if (p_flags & DisplayServerEnums::WINDOW_FLAG_MINIMIZE_DISABLED_BIT) { wd.no_min_btn = true; } - if (p_flags & WINDOW_FLAG_MAXIMIZE_DISABLED_BIT) { + if (p_flags & DisplayServerEnums::WINDOW_FLAG_MAXIMIZE_DISABLED_BIT) { wd.no_max_btn = true; } - if (p_flags & WINDOW_FLAG_BORDERLESS_BIT) { + if (p_flags & DisplayServerEnums::WINDOW_FLAG_BORDERLESS_BIT) { wd.borderless = true; } - if (p_flags & WINDOW_FLAG_ALWAYS_ON_TOP_BIT && p_mode != WINDOW_MODE_FULLSCREEN && p_mode != WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if (p_flags & DisplayServerEnums::WINDOW_FLAG_ALWAYS_ON_TOP_BIT && p_mode != DisplayServerEnums::WINDOW_MODE_FULLSCREEN && p_mode != DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { wd.always_on_top = true; } - if (p_flags & WINDOW_FLAG_SHARP_CORNERS_BIT) { + if (p_flags & DisplayServerEnums::WINDOW_FLAG_SHARP_CORNERS_BIT) { wd.sharp_corners = true; } - if (p_flags & WINDOW_FLAG_NO_FOCUS_BIT) { + if (p_flags & DisplayServerEnums::WINDOW_FLAG_NO_FOCUS_BIT) { wd.no_focus = true; } - if (p_flags & WINDOW_FLAG_MOUSE_PASSTHROUGH_BIT) { + if (p_flags & DisplayServerEnums::WINDOW_FLAG_MOUSE_PASSTHROUGH_BIT) { wd.mpass = true; } - if (p_flags & WINDOW_FLAG_EXCLUDE_FROM_CAPTURE_BIT) { + if (p_flags & DisplayServerEnums::WINDOW_FLAG_EXCLUDE_FROM_CAPTURE_BIT) { wd.hide_from_capture = true; if (os_ver.dwBuildNumber >= 19041) { SetWindowDisplayAffinity(wd.hWnd, WDA_EXCLUDEFROMCAPTURE); @@ -1822,10 +1822,10 @@ DisplayServer::WindowID DisplayServerWindows::create_sub_window(WindowMode p_mod SetWindowDisplayAffinity(wd.hWnd, WDA_MONITOR); } } - if (p_flags & WINDOW_FLAG_POPUP_BIT) { + if (p_flags & DisplayServerEnums::WINDOW_FLAG_POPUP_BIT) { wd.is_popup = true; } - if (p_flags & WINDOW_FLAG_TRANSPARENT_BIT) { + if (p_flags & DisplayServerEnums::WINDOW_FLAG_TRANSPARENT_BIT) { if (OS::get_singleton()->is_layered_allowed()) { DWM_BLURBEHIND bb; ZeroMemory(&bb, sizeof(bb)); @@ -1840,11 +1840,11 @@ DisplayServer::WindowID DisplayServerWindows::create_sub_window(WindowMode p_mod } // Inherit icons from MAIN_WINDOW for all sub windows. - HICON mainwindow_icon = (HICON)SendMessage(windows[MAIN_WINDOW_ID].hWnd, WM_GETICON, ICON_SMALL, 0); + HICON mainwindow_icon = (HICON)SendMessage(windows[DisplayServerEnums::MAIN_WINDOW_ID].hWnd, WM_GETICON, ICON_SMALL, 0); if (mainwindow_icon) { SendMessage(windows[window_id].hWnd, WM_SETICON, ICON_SMALL, (LPARAM)mainwindow_icon); } - mainwindow_icon = (HICON)SendMessage(windows[MAIN_WINDOW_ID].hWnd, WM_GETICON, ICON_BIG, 0); + mainwindow_icon = (HICON)SendMessage(windows[DisplayServerEnums::MAIN_WINDOW_ID].hWnd, WM_GETICON, ICON_BIG, 0); if (mainwindow_icon) { SendMessage(windows[window_id].hWnd, WM_SETICON, ICON_BIG, (LPARAM)mainwindow_icon); } @@ -1856,7 +1856,7 @@ DisplayServer::WindowID DisplayServerWindows::create_sub_window(WindowMode p_mod return window_id; } -bool DisplayServerWindows::_is_always_on_top_recursive(WindowID p_window) const { +bool DisplayServerWindows::_is_always_on_top_recursive(DisplayServerEnums::WindowID p_window) const { ERR_FAIL_COND_V(!windows.has(p_window), false); const WindowData &wd = windows[p_window]; @@ -1864,20 +1864,20 @@ bool DisplayServerWindows::_is_always_on_top_recursive(WindowID p_window) const return true; } - if (wd.transient_parent != INVALID_WINDOW_ID) { + if (wd.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { return _is_always_on_top_recursive(wd.transient_parent); } return false; } -void DisplayServerWindows::show_window(WindowID p_id) { +void DisplayServerWindows::show_window(DisplayServerEnums::WindowID p_id) { ERR_FAIL_COND(!windows.has(p_id)); WindowData &wd = windows[p_id]; popup_open(p_id); - if (p_id != MAIN_WINDOW_ID) { + if (p_id != DisplayServerEnums::MAIN_WINDOW_ID) { _update_window_style(p_id); } wd.initialized = true; @@ -1904,22 +1904,22 @@ void DisplayServerWindows::show_window(WindowID p_id) { } } -void DisplayServerWindows::delete_sub_window(WindowID p_window) { +void DisplayServerWindows::delete_sub_window(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); - ERR_FAIL_COND_MSG(p_window == MAIN_WINDOW_ID, "Main window cannot be deleted."); + ERR_FAIL_COND_MSG(p_window == DisplayServerEnums::MAIN_WINDOW_ID, "Main window cannot be deleted."); popup_close(p_window); WindowData &wd = windows[p_window]; while (wd.transient_children.size()) { - window_set_transient(*wd.transient_children.begin(), INVALID_WINDOW_ID); + window_set_transient(*wd.transient_children.begin(), DisplayServerEnums::INVALID_WINDOW_ID); } - if (wd.transient_parent != INVALID_WINDOW_ID) { - window_set_transient(p_window, INVALID_WINDOW_ID); + if (wd.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { + window_set_transient(p_window, DisplayServerEnums::INVALID_WINDOW_ID); } #ifdef RD_ENABLED @@ -1943,11 +1943,11 @@ void DisplayServerWindows::delete_sub_window(WindowID p_window) { _destroy_window(p_window); if (last_focused_window == p_window) { - last_focused_window = INVALID_WINDOW_ID; + last_focused_window = DisplayServerEnums::INVALID_WINDOW_ID; } } -void DisplayServerWindows::gl_window_make_current(DisplayServer::WindowID p_window_id) { +void DisplayServerWindows::gl_window_make_current(DisplayServerEnums::WindowID p_window_id) { #if defined(GLES3_ENABLED) if (gl_manager_angle) { gl_manager_angle->window_make_current(p_window_id); @@ -1958,24 +1958,24 @@ void DisplayServerWindows::gl_window_make_current(DisplayServer::WindowID p_wind #endif } -int64_t DisplayServerWindows::window_get_native_handle(HandleType p_handle_type, WindowID p_window) const { +int64_t DisplayServerWindows::window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window) const { ERR_FAIL_COND_V(!windows.has(p_window), 0); switch (p_handle_type) { - case DISPLAY_HANDLE: { + case DisplayServerEnums::DISPLAY_HANDLE: { return 0; // Not supported. } - case WINDOW_HANDLE: { + case DisplayServerEnums::WINDOW_HANDLE: { return (int64_t)windows[p_window].hWnd; } #if defined(GLES3_ENABLED) - case WINDOW_VIEW: { + case DisplayServerEnums::WINDOW_VIEW: { if (gl_manager_native) { return (int64_t)gl_manager_native->get_hdc(p_window); } else { return (int64_t)GetDC(windows[p_window].hWnd); } } - case OPENGL_CONTEXT: { + case DisplayServerEnums::OPENGL_CONTEXT: { if (gl_manager_native) { return (int64_t)gl_manager_native->get_hglrc(p_window); } @@ -1984,13 +1984,13 @@ int64_t DisplayServerWindows::window_get_native_handle(HandleType p_handle_type, } return 0; } - case EGL_DISPLAY: { + case DisplayServerEnums::EGL_DISPLAY: { if (gl_manager_angle) { return (int64_t)gl_manager_angle->get_display(p_window); } return 0; } - case EGL_CONFIG: { + case DisplayServerEnums::EGL_CONFIG: { if (gl_manager_angle) { return (int64_t)gl_manager_angle->get_config(p_window); } @@ -2003,49 +2003,49 @@ int64_t DisplayServerWindows::window_get_native_handle(HandleType p_handle_type, } } -void DisplayServerWindows::window_attach_instance_id(ObjectID p_instance, WindowID p_window) { +void DisplayServerWindows::window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); windows[p_window].instance_id = p_instance; } -ObjectID DisplayServerWindows::window_get_attached_instance_id(WindowID p_window) const { +ObjectID DisplayServerWindows::window_get_attached_instance_id(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), ObjectID()); return windows[p_window].instance_id; } -void DisplayServerWindows::window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerWindows::window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); windows[p_window].rect_changed_callback = p_callable; } -void DisplayServerWindows::window_set_window_event_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerWindows::window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); windows[p_window].event_callback = p_callable; } -void DisplayServerWindows::window_set_input_event_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerWindows::window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); windows[p_window].input_event_callback = p_callable; } -void DisplayServerWindows::window_set_input_text_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerWindows::window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); windows[p_window].input_text_callback = p_callable; } -void DisplayServerWindows::window_set_drop_files_callback(const Callable &p_callable, WindowID p_window) { +void DisplayServerWindows::window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2059,14 +2059,14 @@ void DisplayServerWindows::window_set_drop_files_callback(const Callable &p_call } } -void DisplayServerWindows::window_set_title(const String &p_title, WindowID p_window) { +void DisplayServerWindows::window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); SetWindowTextW(windows[p_window].hWnd, (LPCWSTR)(p_title.utf16().get_data())); } -Size2i DisplayServerWindows::window_get_title_size(const String &p_title, WindowID p_window) const { +Size2i DisplayServerWindows::window_get_title_size(const String &p_title, DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ Size2i size; @@ -2109,7 +2109,7 @@ Size2i DisplayServerWindows::window_get_title_size(const String &p_title, Window return size; } -void DisplayServerWindows::window_set_mouse_passthrough(const Vector &p_region, WindowID p_window) { +void DisplayServerWindows::window_set_mouse_passthrough(const Vector &p_region, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2117,7 +2117,7 @@ void DisplayServerWindows::window_set_mouse_passthrough(const Vector &p _update_window_mouse_passthrough(p_window); } -void DisplayServerWindows::_update_window_mouse_passthrough(WindowID p_window) { +void DisplayServerWindows::_update_window_mouse_passthrough(DisplayServerEnums::WindowID p_window) { ERR_FAIL_COND(!windows.has(p_window)); const WindowData &wd = windows[p_window]; @@ -2153,17 +2153,17 @@ void DisplayServerWindows::_update_window_mouse_passthrough(WindowID p_window) { } } -int DisplayServerWindows::window_get_current_screen(WindowID p_window) const { +int DisplayServerWindows::window_get_current_screen(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ - ERR_FAIL_COND_V(!windows.has(p_window), INVALID_SCREEN); + ERR_FAIL_COND_V(!windows.has(p_window), DisplayServerEnums::INVALID_SCREEN); EnumScreenData data = { 0, 0, MonitorFromWindow(windows[p_window].hWnd, MONITOR_DEFAULTTONEAREST) }; EnumDisplayMonitors(nullptr, nullptr, _MonitorEnumProcScreen, (LPARAM)&data); return data.screen; } -void DisplayServerWindows::window_set_current_screen(int p_screen, WindowID p_window) { +void DisplayServerWindows::window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2206,7 +2206,7 @@ void DisplayServerWindows::window_set_current_screen(int p_screen, WindowID p_wi } } -Point2i DisplayServerWindows::window_get_position(WindowID p_window) const { +Point2i DisplayServerWindows::window_get_position(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Point2i()); @@ -2225,7 +2225,7 @@ Point2i DisplayServerWindows::window_get_position(WindowID p_window) const { return Point2i(point.x, point.y) - _get_screens_origin(); } -Point2i DisplayServerWindows::window_get_position_with_decorations(WindowID p_window) const { +Point2i DisplayServerWindows::window_get_position_with_decorations(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Point2i()); @@ -2243,7 +2243,7 @@ Point2i DisplayServerWindows::window_get_position_with_decorations(WindowID p_wi return Point2i(); } -void DisplayServerWindows::_update_real_mouse_position(WindowID p_window) { +void DisplayServerWindows::_update_real_mouse_position(DisplayServerEnums::WindowID p_window) { ERR_FAIL_COND(!windows.has(p_window)); POINT mouse_pos; @@ -2257,7 +2257,7 @@ void DisplayServerWindows::_update_real_mouse_position(WindowID p_window) { } } -void DisplayServerWindows::window_set_position(const Point2i &p_position, WindowID p_window) { +void DisplayServerWindows::window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2290,13 +2290,13 @@ void DisplayServerWindows::window_set_position(const Point2i &p_position, Window _update_real_mouse_position(p_window); } -void DisplayServerWindows::window_set_exclusive(WindowID p_window, bool p_exclusive) { +void DisplayServerWindows::window_set_exclusive(DisplayServerEnums::WindowID p_window, bool p_exclusive) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; if (wd.exclusive != p_exclusive) { wd.exclusive = p_exclusive; - if (wd.transient_parent != INVALID_WINDOW_ID) { + if (wd.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { if (wd.exclusive) { WindowData &wd_parent = windows[wd.transient_parent]; SetWindowLongPtr(wd.hWnd, GWLP_HWNDPARENT, (LONG_PTR)wd_parent.hWnd); @@ -2307,7 +2307,7 @@ void DisplayServerWindows::window_set_exclusive(WindowID p_window, bool p_exclus } } -void DisplayServerWindows::window_set_transient(WindowID p_window, WindowID p_parent) { +void DisplayServerWindows::window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(p_window == p_parent); @@ -2318,15 +2318,15 @@ void DisplayServerWindows::window_set_transient(WindowID p_window, WindowID p_pa ERR_FAIL_COND(wd_window.transient_parent == p_parent); ERR_FAIL_COND_MSG(wd_window.always_on_top, "Windows with the 'on top' can't become transient."); - if (p_parent == INVALID_WINDOW_ID) { + if (p_parent == DisplayServerEnums::INVALID_WINDOW_ID) { // Remove transient. - ERR_FAIL_COND(wd_window.transient_parent == INVALID_WINDOW_ID); + ERR_FAIL_COND(wd_window.transient_parent == DisplayServerEnums::INVALID_WINDOW_ID); ERR_FAIL_COND(!windows.has(wd_window.transient_parent)); WindowData &wd_parent = windows[wd_window.transient_parent]; - wd_window.transient_parent = INVALID_WINDOW_ID; + wd_window.transient_parent = DisplayServerEnums::INVALID_WINDOW_ID; wd_parent.transient_children.erase(p_window); if (wd_window.exclusive) { @@ -2334,7 +2334,7 @@ void DisplayServerWindows::window_set_transient(WindowID p_window, WindowID p_pa } } else { ERR_FAIL_COND(!windows.has(p_parent)); - ERR_FAIL_COND_MSG(wd_window.transient_parent != INVALID_WINDOW_ID, "Window already has a transient parent"); + ERR_FAIL_COND_MSG(wd_window.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID, "Window already has a transient parent"); WindowData &wd_parent = windows[p_parent]; wd_window.transient_parent = p_parent; @@ -2346,7 +2346,7 @@ void DisplayServerWindows::window_set_transient(WindowID p_window, WindowID p_pa } } -void DisplayServerWindows::window_set_max_size(const Size2i p_size, WindowID p_window) { +void DisplayServerWindows::window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2364,7 +2364,7 @@ void DisplayServerWindows::window_set_max_size(const Size2i p_size, WindowID p_w wd.max_size = p_size; } -Size2i DisplayServerWindows::window_get_max_size(WindowID p_window) const { +Size2i DisplayServerWindows::window_get_max_size(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Size2i()); @@ -2372,7 +2372,7 @@ Size2i DisplayServerWindows::window_get_max_size(WindowID p_window) const { return wd.max_size; } -void DisplayServerWindows::window_set_min_size(const Size2i p_size, WindowID p_window) { +void DisplayServerWindows::window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2390,7 +2390,7 @@ void DisplayServerWindows::window_set_min_size(const Size2i p_size, WindowID p_w wd.min_size = p_size; } -Size2i DisplayServerWindows::window_get_min_size(WindowID p_window) const { +Size2i DisplayServerWindows::window_get_min_size(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Size2i()); @@ -2398,7 +2398,7 @@ Size2i DisplayServerWindows::window_get_min_size(WindowID p_window) const { return wd.min_size; } -void DisplayServerWindows::window_set_size(const Size2i p_size, WindowID p_window) { +void DisplayServerWindows::window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2429,7 +2429,7 @@ void DisplayServerWindows::window_set_size(const Size2i p_size, WindowID p_windo MoveWindow(wd.hWnd, rect.left, rect.top, w, h, TRUE); } -Size2i DisplayServerWindows::window_get_size(WindowID p_window) const { +Size2i DisplayServerWindows::window_get_size(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Size2i()); @@ -2448,7 +2448,7 @@ Size2i DisplayServerWindows::window_get_size(WindowID p_window) const { return Size2(); } -Size2i DisplayServerWindows::window_get_size_with_decorations(WindowID p_window) const { +Size2i DisplayServerWindows::window_get_size_with_decorations(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Size2i()); @@ -2549,7 +2549,7 @@ void DisplayServerWindows::_get_window_style(bool p_main_window, bool p_initiali } } -void DisplayServerWindows::_update_window_style(WindowID p_window, bool p_repaint) { +void DisplayServerWindows::_update_window_style(DisplayServerEnums::WindowID p_window, bool p_repaint) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2558,7 +2558,7 @@ void DisplayServerWindows::_update_window_style(WindowID p_window, bool p_repain DWORD style = 0; DWORD style_ex = 0; - _get_window_style(p_window == MAIN_WINDOW_ID, wd.initialized, wd.fullscreen, wd.multiwindow_fs, wd.borderless, wd.resizable, wd.no_min_btn, wd.no_max_btn, wd.minimized, wd.maximized, wd.maximized_fs, wd.no_focus || wd.is_popup, wd.parent_hwnd, wd.no_redirection_bitmap, style, style_ex); + _get_window_style(p_window == DisplayServerEnums::MAIN_WINDOW_ID, wd.initialized, wd.fullscreen, wd.multiwindow_fs, wd.borderless, wd.resizable, wd.no_min_btn, wd.no_max_btn, wd.minimized, wd.maximized, wd.maximized_fs, wd.no_focus || wd.is_popup, wd.parent_hwnd, wd.no_redirection_bitmap, style, style_ex); SetWindowLongPtr(wd.hWnd, GWL_STYLE, style); SetWindowLongPtr(wd.hWnd, GWL_EXSTYLE, style_ex); @@ -2585,13 +2585,13 @@ void DisplayServerWindows::_update_window_style(WindowID p_window, bool p_repain } } -void DisplayServerWindows::window_set_mode(WindowMode p_mode, WindowID p_window) { +void DisplayServerWindows::window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; - if (p_mode != WINDOW_MODE_WINDOWED && wd.parent_hwnd) { + if (p_mode != DisplayServerEnums::WINDOW_MODE_WINDOWED && wd.parent_hwnd) { print_line("Embedded window only supports Windowed mode."); return; } @@ -2599,16 +2599,16 @@ void DisplayServerWindows::window_set_mode(WindowMode p_mode, WindowID p_window) bool was_fullscreen = wd.fullscreen; wd.was_fullscreen_pre_min = false; - if (p_mode == WINDOW_MODE_MAXIMIZED && wd.borderless) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_MAXIMIZED && wd.borderless) { int cs = window_get_current_screen(p_window); Rect2i full = Rect2i(screen_get_position(cs), screen_get_size(cs)); Rect2i usable = screen_get_usable_rect(cs); if (full == usable) { - p_mode = WINDOW_MODE_FULLSCREEN; + p_mode = DisplayServerEnums::WINDOW_MODE_FULLSCREEN; } } - if (wd.fullscreen && p_mode != WINDOW_MODE_FULLSCREEN && p_mode != WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if (wd.fullscreen && p_mode != DisplayServerEnums::WINDOW_MODE_FULLSCREEN && p_mode != DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { RECT rect; wd.fullscreen = false; @@ -2638,7 +2638,7 @@ void DisplayServerWindows::window_set_mode(WindowMode p_mode, WindowID p_window) } } - if ((wd.maximized || wd.was_maximized_pre_fs) && wd.borderless && p_mode != WINDOW_MODE_MINIMIZED && p_mode != WINDOW_MODE_FULLSCREEN && p_mode != WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if ((wd.maximized || wd.was_maximized_pre_fs) && wd.borderless && p_mode != DisplayServerEnums::WINDOW_MODE_MINIMIZED && p_mode != DisplayServerEnums::WINDOW_MODE_FULLSCREEN && p_mode != DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { RECT rect; if (wd.pre_fs_valid) { rect = wd.pre_fs_rect; @@ -2653,19 +2653,19 @@ void DisplayServerWindows::window_set_mode(WindowMode p_mode, WindowID p_window) MoveWindow(wd.hWnd, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, TRUE); } - if (p_mode == WINDOW_MODE_WINDOWED) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_WINDOWED) { ShowWindow(wd.hWnd, SW_NORMAL); wd.maximized = false; wd.minimized = false; } - if (p_mode == WINDOW_MODE_MAXIMIZED && !wd.borderless) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_MAXIMIZED && !wd.borderless) { ShowWindow(wd.hWnd, SW_MAXIMIZE); wd.maximized = true; wd.minimized = false; } - if (p_mode == WINDOW_MODE_MAXIMIZED && wd.borderless) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_MAXIMIZED && wd.borderless) { if (!was_fullscreen && !(wd.maximized && wd.borderless)) { // Save non-fullscreen rect before entering fullscreen. GetWindowRect(wd.hWnd, &wd.pre_fs_rect); @@ -2682,21 +2682,21 @@ void DisplayServerWindows::window_set_mode(WindowMode p_mode, WindowID p_window) MoveWindow(wd.hWnd, pos.x, pos.y, size.width, size.height, TRUE); } - if (p_mode == WINDOW_MODE_MINIMIZED) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_MINIMIZED) { ShowWindow(wd.hWnd, SW_MINIMIZE); wd.maximized = false; wd.minimized = true; wd.was_fullscreen_pre_min = was_fullscreen; } - if (p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { wd.multiwindow_fs = false; - } else if (p_mode == WINDOW_MODE_FULLSCREEN) { + } else if (p_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN) { wd.multiwindow_fs = true; } _update_window_style(p_window, false); - if ((p_mode == WINDOW_MODE_FULLSCREEN || p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN) && !wd.fullscreen) { + if ((p_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN || p_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) && !wd.fullscreen) { if (wd.minimized || wd.maximized) { ShowWindow(wd.hWnd, SW_RESTORE); } @@ -2733,28 +2733,28 @@ void DisplayServerWindows::window_set_mode(WindowMode p_mode, WindowID p_window) _update_window_mouse_passthrough(p_window); } -DisplayServer::WindowMode DisplayServerWindows::window_get_mode(WindowID p_window) const { +DisplayServerEnums::WindowMode DisplayServerWindows::window_get_mode(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ - ERR_FAIL_COND_V(!windows.has(p_window), WINDOW_MODE_WINDOWED); + ERR_FAIL_COND_V(!windows.has(p_window), DisplayServerEnums::WINDOW_MODE_WINDOWED); const WindowData &wd = windows[p_window]; if (wd.fullscreen) { if (wd.multiwindow_fs) { - return WINDOW_MODE_FULLSCREEN; + return DisplayServerEnums::WINDOW_MODE_FULLSCREEN; } else { - return WINDOW_MODE_EXCLUSIVE_FULLSCREEN; + return DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN; } } else if (wd.minimized) { - return WINDOW_MODE_MINIMIZED; + return DisplayServerEnums::WINDOW_MODE_MINIMIZED; } else if (wd.maximized) { - return WINDOW_MODE_MAXIMIZED; + return DisplayServerEnums::WINDOW_MODE_MAXIMIZED; } else { - return WINDOW_MODE_WINDOWED; + return DisplayServerEnums::WINDOW_MODE_WINDOWED; } } -bool DisplayServerWindows::window_is_maximize_allowed(WindowID p_window) const { +bool DisplayServerWindows::window_is_maximize_allowed(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), false); @@ -2764,21 +2764,21 @@ bool DisplayServerWindows::window_is_maximize_allowed(WindowID p_window) const { return (style & WS_MAXIMIZEBOX) == WS_MAXIMIZEBOX; } -void DisplayServerWindows::window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window) { +void DisplayServerWindows::window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; switch (p_flag) { - case WINDOW_FLAG_MINIMIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_MINIMIZE_DISABLED: { wd.no_min_btn = p_enabled; _update_window_style(p_window); } break; - case WINDOW_FLAG_MAXIMIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_MAXIMIZE_DISABLED: { wd.no_max_btn = p_enabled; _update_window_style(p_window); } break; - case WINDOW_FLAG_RESIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_RESIZE_DISABLED: { if (p_enabled && wd.parent_hwnd) { print_line("Embedded window resize can't be disabled."); return; @@ -2786,7 +2786,7 @@ void DisplayServerWindows::window_set_flag(WindowFlags p_flag, bool p_enabled, W wd.resizable = !p_enabled; _update_window_style(p_window); } break; - case WINDOW_FLAG_BORDERLESS: { + case DisplayServerEnums::WINDOW_FLAG_BORDERLESS: { wd.borderless = p_enabled; if (wd.fullscreen) { return; @@ -2795,8 +2795,8 @@ void DisplayServerWindows::window_set_flag(WindowFlags p_flag, bool p_enabled, W _update_window_style(p_window); ShowWindow(wd.hWnd, (wd.no_focus || wd.is_popup) ? SW_SHOWNOACTIVATE : SW_SHOW); // Show the window. } break; - case WINDOW_FLAG_ALWAYS_ON_TOP: { - ERR_FAIL_COND_MSG(wd.transient_parent != INVALID_WINDOW_ID && p_enabled, "Transient windows can't become on top."); + case DisplayServerEnums::WINDOW_FLAG_ALWAYS_ON_TOP: { + ERR_FAIL_COND_MSG(wd.transient_parent != DisplayServerEnums::INVALID_WINDOW_ID && p_enabled, "Transient windows can't become on top."); if (p_enabled && wd.parent_hwnd) { print_line("Embedded window can't become on top."); return; @@ -2804,13 +2804,13 @@ void DisplayServerWindows::window_set_flag(WindowFlags p_flag, bool p_enabled, W wd.always_on_top = p_enabled; _update_window_style(p_window); } break; - case WINDOW_FLAG_SHARP_CORNERS: { + case DisplayServerEnums::WINDOW_FLAG_SHARP_CORNERS: { wd.sharp_corners = p_enabled; DWORD value = wd.sharp_corners ? DWMWCP_DONOTROUND : DWMWCP_DEFAULT; ::DwmSetWindowAttribute(wd.hWnd, DWMWA_WINDOW_CORNER_PREFERENCE, &value, sizeof(value)); _update_window_style(p_window); } break; - case WINDOW_FLAG_TRANSPARENT: { + case DisplayServerEnums::WINDOW_FLAG_TRANSPARENT: { if (p_enabled) { // Enable per-pixel alpha. if (OS::get_singleton()->is_layered_allowed()) { @@ -2837,14 +2837,14 @@ void DisplayServerWindows::window_set_flag(WindowFlags p_flag, bool p_enabled, W } } } break; - case WINDOW_FLAG_NO_FOCUS: { + case DisplayServerEnums::WINDOW_FLAG_NO_FOCUS: { wd.no_focus = p_enabled; _update_window_style(p_window); } break; - case WINDOW_FLAG_MOUSE_PASSTHROUGH: { + case DisplayServerEnums::WINDOW_FLAG_MOUSE_PASSTHROUGH: { wd.mpass = p_enabled; } break; - case WINDOW_FLAG_EXCLUDE_FROM_CAPTURE: { + case DisplayServerEnums::WINDOW_FLAG_EXCLUDE_FROM_CAPTURE: { wd.hide_from_capture = p_enabled; if (p_enabled) { if (os_ver.dwBuildNumber >= 19041) { @@ -2856,8 +2856,8 @@ void DisplayServerWindows::window_set_flag(WindowFlags p_flag, bool p_enabled, W SetWindowDisplayAffinity(wd.hWnd, WDA_NONE); } } break; - case WINDOW_FLAG_POPUP: { - ERR_FAIL_COND_MSG(p_window == MAIN_WINDOW_ID, "Main window can't be popup."); + case DisplayServerEnums::WINDOW_FLAG_POPUP: { + ERR_FAIL_COND_MSG(p_window == DisplayServerEnums::MAIN_WINDOW_ID, "Main window can't be popup."); ERR_FAIL_COND_MSG(IsWindowVisible(wd.hWnd) && (wd.is_popup != p_enabled), "Popup flag can't changed while window is opened."); if (p_enabled && wd.parent_hwnd) { print_line("Embedded window can't be popup."); @@ -2870,43 +2870,43 @@ void DisplayServerWindows::window_set_flag(WindowFlags p_flag, bool p_enabled, W } } -bool DisplayServerWindows::window_get_flag(WindowFlags p_flag, WindowID p_window) const { +bool DisplayServerWindows::window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), false); const WindowData &wd = windows[p_window]; switch (p_flag) { - case WINDOW_FLAG_MAXIMIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_MAXIMIZE_DISABLED: { return wd.no_max_btn; } break; - case WINDOW_FLAG_MINIMIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_MINIMIZE_DISABLED: { return wd.no_min_btn; } break; - case WINDOW_FLAG_RESIZE_DISABLED: { + case DisplayServerEnums::WINDOW_FLAG_RESIZE_DISABLED: { return !wd.resizable; } break; - case WINDOW_FLAG_BORDERLESS: { + case DisplayServerEnums::WINDOW_FLAG_BORDERLESS: { return wd.borderless; } break; - case WINDOW_FLAG_ALWAYS_ON_TOP: { + case DisplayServerEnums::WINDOW_FLAG_ALWAYS_ON_TOP: { return wd.always_on_top; } break; - case WINDOW_FLAG_SHARP_CORNERS: { + case DisplayServerEnums::WINDOW_FLAG_SHARP_CORNERS: { return wd.sharp_corners; } break; - case WINDOW_FLAG_TRANSPARENT: { + case DisplayServerEnums::WINDOW_FLAG_TRANSPARENT: { return wd.layered_window; } break; - case WINDOW_FLAG_NO_FOCUS: { + case DisplayServerEnums::WINDOW_FLAG_NO_FOCUS: { return wd.no_focus; } break; - case WINDOW_FLAG_MOUSE_PASSTHROUGH: { + case DisplayServerEnums::WINDOW_FLAG_MOUSE_PASSTHROUGH: { return wd.mpass; } break; - case WINDOW_FLAG_EXCLUDE_FROM_CAPTURE: { + case DisplayServerEnums::WINDOW_FLAG_EXCLUDE_FROM_CAPTURE: { return wd.hide_from_capture; } break; - case WINDOW_FLAG_POPUP: { + case DisplayServerEnums::WINDOW_FLAG_POPUP: { return wd.is_popup; } break; default: @@ -2916,7 +2916,7 @@ bool DisplayServerWindows::window_get_flag(WindowFlags p_flag, WindowID p_window return false; } -void DisplayServerWindows::window_request_attention(WindowID p_window) { +void DisplayServerWindows::window_request_attention(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2931,13 +2931,13 @@ void DisplayServerWindows::window_request_attention(WindowID p_window) { FlashWindowEx(&info); } -void DisplayServerWindows::window_set_taskbar_progress_value(float p_value, WindowID p_window) { +void DisplayServerWindows::window_set_taskbar_progress_value(float p_value, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; wd.progress_value = p_value; - if (wd.progress_state == PROGRESS_STATE_NOPROGRESS) { + if (wd.progress_state == DisplayServerEnums::PROGRESS_STATE_NOPROGRESS) { return; } if (taskbar == nullptr) { @@ -2952,7 +2952,7 @@ void DisplayServerWindows::window_set_taskbar_progress_value(float p_value, Wind taskbar->SetProgressValue(wd.hWnd, Math::round(p_value * 100000), 100000); } -void DisplayServerWindows::window_set_taskbar_progress_state(ProgressState p_state, WindowID p_window) { +void DisplayServerWindows::window_set_taskbar_progress_state(DisplayServerEnums::ProgressState p_state, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -2969,19 +2969,19 @@ void DisplayServerWindows::window_set_taskbar_progress_state(ProgressState p_sta TBPFLAG tbpf = TBPF_NOPROGRESS; switch (p_state) { - case PROGRESS_STATE_NOPROGRESS: + case DisplayServerEnums::PROGRESS_STATE_NOPROGRESS: tbpf = TBPF_NOPROGRESS; break; - case PROGRESS_STATE_INDETERMINATE: + case DisplayServerEnums::PROGRESS_STATE_INDETERMINATE: tbpf = TBPF_INDETERMINATE; break; - case PROGRESS_STATE_ERROR: + case DisplayServerEnums::PROGRESS_STATE_ERROR: tbpf = TBPF_ERROR; break; - case PROGRESS_STATE_PAUSED: + case DisplayServerEnums::PROGRESS_STATE_PAUSED: tbpf = TBPF_PAUSED; break; - case PROGRESS_STATE_NORMAL: + case DisplayServerEnums::PROGRESS_STATE_NORMAL: tbpf = TBPF_NORMAL; break; default: @@ -2989,12 +2989,12 @@ void DisplayServerWindows::window_set_taskbar_progress_state(ProgressState p_sta } taskbar->SetProgressState(wd.hWnd, tbpf); - if (p_state != PROGRESS_STATE_INDETERMINATE) { + if (p_state != DisplayServerEnums::PROGRESS_STATE_INDETERMINATE) { taskbar->SetProgressValue(wd.hWnd, Math::round(wd.progress_value * 100000), 100000); } } -void DisplayServerWindows::window_move_to_foreground(WindowID p_window) { +void DisplayServerWindows::window_move_to_foreground(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -3005,7 +3005,7 @@ void DisplayServerWindows::window_move_to_foreground(WindowID p_window) { } } -bool DisplayServerWindows::window_is_focused(WindowID p_window) const { +bool DisplayServerWindows::window_is_focused(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), false); @@ -3014,11 +3014,11 @@ bool DisplayServerWindows::window_is_focused(WindowID p_window) const { return wd.window_focused; } -DisplayServerWindows::WindowID DisplayServerWindows::get_focused_window() const { +DisplayServerEnums::WindowID DisplayServerWindows::get_focused_window() const { return last_focused_window; } -bool DisplayServerWindows::window_can_draw(WindowID p_window) const { +bool DisplayServerWindows::window_can_draw(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), false); @@ -3029,7 +3029,7 @@ bool DisplayServerWindows::window_can_draw(WindowID p_window) const { bool DisplayServerWindows::can_any_window_draw() const { _THREAD_SAFE_METHOD_ - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { if (!E.value.minimized) { return true; } @@ -3081,7 +3081,7 @@ int DisplayServerWindows::accessibility_screen_reader_active() const { Vector2i DisplayServerWindows::ime_get_selection() const { _THREAD_SAFE_METHOD_ - DisplayServer::WindowID window_id = _get_focused_window_or_popup(); + DisplayServerEnums::WindowID window_id = _get_focused_window_or_popup(); const WindowData &wd = windows[window_id]; if (!wd.ime_active) { return Vector2i(); @@ -3113,7 +3113,7 @@ Vector2i DisplayServerWindows::ime_get_selection() const { String DisplayServerWindows::ime_get_text() const { _THREAD_SAFE_METHOD_ - DisplayServer::WindowID window_id = _get_focused_window_or_popup(); + DisplayServerEnums::WindowID window_id = _get_focused_window_or_popup(); const WindowData &wd = windows[window_id]; if (!wd.ime_active) { return String(); @@ -3130,7 +3130,7 @@ String DisplayServerWindows::ime_get_text() const { return ret; } -void DisplayServerWindows::window_set_ime_active(const bool p_active, WindowID p_window) { +void DisplayServerWindows::window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -3148,7 +3148,7 @@ void DisplayServerWindows::window_set_ime_active(const bool p_active, WindowID p } } -void DisplayServerWindows::window_set_ime_position(const Point2i &p_pos, WindowID p_window) { +void DisplayServerWindows::window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -3169,21 +3169,21 @@ void DisplayServerWindows::window_set_ime_position(const Point2i &p_pos, WindowI ImmReleaseContext(wd.hWnd, himc); } -void DisplayServerWindows::cursor_set_shape(CursorShape p_shape) { +void DisplayServerWindows::cursor_set_shape(DisplayServerEnums::CursorShape p_shape) { _THREAD_SAFE_METHOD_ - ERR_FAIL_INDEX(p_shape, CURSOR_MAX); + ERR_FAIL_INDEX(p_shape, DisplayServerEnums::CURSOR_MAX); if (cursor_shape == p_shape) { return; } - if (mouse_mode != MOUSE_MODE_VISIBLE && mouse_mode != MOUSE_MODE_CONFINED) { + if (mouse_mode != DisplayServerEnums::MOUSE_MODE_VISIBLE && mouse_mode != DisplayServerEnums::MOUSE_MODE_CONFINED) { cursor_shape = p_shape; return; } - static const LPCTSTR win_cursors[CURSOR_MAX] = { + static const LPCTSTR win_cursors[DisplayServerEnums::CURSOR_MAX] = { IDC_ARROW, IDC_IBEAM, IDC_HAND, // Finger. @@ -3212,17 +3212,17 @@ void DisplayServerWindows::cursor_set_shape(CursorShape p_shape) { cursor_shape = p_shape; } -DisplayServer::CursorShape DisplayServerWindows::cursor_get_shape() const { +DisplayServerEnums::CursorShape DisplayServerWindows::cursor_get_shape() const { return cursor_shape; } -void DisplayServerWindows::cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) { +void DisplayServerWindows::cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape, const Vector2 &p_hotspot) { _THREAD_SAFE_METHOD_ - ERR_FAIL_INDEX(p_shape, CURSOR_MAX); + ERR_FAIL_INDEX(p_shape, DisplayServerEnums::CURSOR_MAX); if (p_cursor.is_valid()) { - RBMap>::Element *cursor_c = cursors_cache.find(p_shape); + RBMap>::Element *cursor_c = cursors_cache.find(p_shape); if (cursor_c) { if (cursor_c->get()[0] == p_cursor && cursor_c->get()[1] == p_hotspot) { @@ -3293,7 +3293,7 @@ void DisplayServerWindows::cursor_set_custom_image(const Ref &p_cursor cursors_cache.insert(p_shape, params); if (p_shape == cursor_shape) { - if (mouse_mode == MOUSE_MODE_VISIBLE || mouse_mode == MOUSE_MODE_CONFINED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_VISIBLE || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED) { SetCursor(cursors[p_shape]); } } @@ -3310,8 +3310,8 @@ void DisplayServerWindows::cursor_set_custom_image(const Ref &p_cursor cursors_cache.erase(p_shape); - CursorShape c = cursor_shape; - cursor_shape = CURSOR_MAX; + DisplayServerEnums::CursorShape c = cursor_shape; + cursor_shape = DisplayServerEnums::CURSOR_MAX; cursor_set_shape(c); } } @@ -3411,7 +3411,7 @@ DisplayServerWindows::ScreenHdrData DisplayServerWindows::_get_screen_hdr_data(i return data; } -void DisplayServerWindows::_update_hdr_output_for_window(WindowID p_window, const WindowData &p_window_data, ScreenHdrData p_screen_data) { +void DisplayServerWindows::_update_hdr_output_for_window(DisplayServerEnums::WindowID p_window, const WindowData &p_window_data, ScreenHdrData p_screen_data) { #ifdef RD_ENABLED if (rendering_context) { bool current_hdr_enabled = rendering_context->window_get_hdr_output_enabled(p_window); @@ -3443,7 +3443,7 @@ void DisplayServerWindows::_update_hdr_output_for_window(WindowID p_window, cons void DisplayServerWindows::_update_hdr_output_for_tracked_windows() { hdr_output_cache.clear(); - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { if (E.value.hdr_output_requested) { int screen = window_get_current_screen(E.key); @@ -3460,7 +3460,7 @@ void DisplayServerWindows::_update_hdr_output_for_tracked_windows() { } } -Error DisplayServerWindows::embed_process(WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) { +Error DisplayServerWindows::embed_process(DisplayServerEnums::WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), FAILED); @@ -3618,9 +3618,9 @@ Error DisplayServerWindows::dialog_show(String p_title, String p_description, Ve buttons.push_back(s.utf16()); } - WindowID window_id = _get_focused_window_or_popup(); + DisplayServerEnums::WindowID window_id = _get_focused_window_or_popup(); if (!windows.has(window_id)) { - window_id = MAIN_WINDOW_ID; + window_id = DisplayServerEnums::MAIN_WINDOW_ID; } config.pszWindowTitle = (LPCWSTR)(title.get_data()); @@ -4287,7 +4287,7 @@ void DisplayServerWindows::set_native_icon(const String &p_filename) { int err = 0; SetLastError(err); - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { SendMessage(E.value.hWnd, WM_SETICON, ICON_SMALL, (LPARAM)icon_small); SendMessage(E.value.hWnd, WM_SETICON, ICON_BIG, (LPARAM)icon_big); } @@ -4350,19 +4350,19 @@ void DisplayServerWindows::set_icon(const Ref &p_icon) { icon_big = CreateIconFromResourceEx(icon_bmp, icon_len, TRUE, 0x00030000, 0, 0, LR_DEFAULTSIZE); ERR_FAIL_NULL(icon_big); - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { SendMessage(E.value.hWnd, WM_SETICON, ICON_SMALL, (LPARAM)icon_big); SendMessage(E.value.hWnd, WM_SETICON, ICON_BIG, (LPARAM)icon_big); } } else { - for (const KeyValue &E : windows) { + for (const KeyValue &E : windows) { SendMessage(E.value.hWnd, WM_SETICON, ICON_SMALL, 0); SendMessage(E.value.hWnd, WM_SETICON, ICON_BIG, 0); } } } -DisplayServer::IndicatorID DisplayServerWindows::create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback) { +DisplayServerEnums::IndicatorID DisplayServerWindows::create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback) { IndicatorData idat; if (p_icon.is_valid() && p_icon->get_width() > 0 && p_icon->get_height() > 0 && p_icon->get_image().is_valid()) { Ref img = p_icon->get_image(); @@ -4414,7 +4414,7 @@ DisplayServer::IndicatorID DisplayServerWindows::create_status_indicator(const R NOTIFYICONDATAW ndat; ZeroMemory(&ndat, sizeof(NOTIFYICONDATAW)); ndat.cbSize = sizeof(NOTIFYICONDATAW); - ndat.hWnd = windows[MAIN_WINDOW_ID].hWnd; + ndat.hWnd = windows[DisplayServerEnums::MAIN_WINDOW_ID].hWnd; ndat.uID = indicator_id_counter; ndat.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE; ndat.uCallbackMessage = WM_INDICATOR_CALLBACK_MESSAGE; @@ -4425,13 +4425,13 @@ DisplayServer::IndicatorID DisplayServerWindows::create_status_indicator(const R Shell_NotifyIconW(NIM_ADD, &ndat); Shell_NotifyIconW(NIM_SETVERSION, &ndat); - IndicatorID iid = indicator_id_counter++; + DisplayServerEnums::IndicatorID iid = indicator_id_counter++; indicators[iid] = idat; return iid; } -void DisplayServerWindows::status_indicator_set_icon(IndicatorID p_id, const Ref &p_icon) { +void DisplayServerWindows::status_indicator_set_icon(DisplayServerEnums::IndicatorID p_id, const Ref &p_icon) { ERR_FAIL_COND(!indicators.has(p_id)); IndicatorData &idat = indicators[p_id]; @@ -4490,7 +4490,7 @@ void DisplayServerWindows::status_indicator_set_icon(IndicatorID p_id, const Ref NOTIFYICONDATAW ndat; ZeroMemory(&ndat, sizeof(NOTIFYICONDATAW)); ndat.cbSize = sizeof(NOTIFYICONDATAW); - ndat.hWnd = windows[MAIN_WINDOW_ID].hWnd; + ndat.hWnd = windows[DisplayServerEnums::MAIN_WINDOW_ID].hWnd; ndat.uID = p_id; ndat.uFlags = NIF_ICON; ndat.hIcon = idat.icon; @@ -4499,13 +4499,13 @@ void DisplayServerWindows::status_indicator_set_icon(IndicatorID p_id, const Ref Shell_NotifyIconW(NIM_MODIFY, &ndat); } -void DisplayServerWindows::status_indicator_set_tooltip(IndicatorID p_id, const String &p_tooltip) { +void DisplayServerWindows::status_indicator_set_tooltip(DisplayServerEnums::IndicatorID p_id, const String &p_tooltip) { ERR_FAIL_COND(!indicators.has(p_id)); NOTIFYICONDATAW ndat; ZeroMemory(&ndat, sizeof(NOTIFYICONDATAW)); ndat.cbSize = sizeof(NOTIFYICONDATAW); - ndat.hWnd = windows[MAIN_WINDOW_ID].hWnd; + ndat.hWnd = windows[DisplayServerEnums::MAIN_WINDOW_ID].hWnd; ndat.uID = p_id; ndat.uFlags = NIF_TIP; memcpy(ndat.szTip, p_tooltip.utf16().get_data(), MIN(p_tooltip.utf16().length(), 127) * sizeof(WCHAR)); @@ -4514,25 +4514,25 @@ void DisplayServerWindows::status_indicator_set_tooltip(IndicatorID p_id, const Shell_NotifyIconW(NIM_MODIFY, &ndat); } -void DisplayServerWindows::status_indicator_set_menu(IndicatorID p_id, const RID &p_menu_rid) { +void DisplayServerWindows::status_indicator_set_menu(DisplayServerEnums::IndicatorID p_id, const RID &p_menu_rid) { ERR_FAIL_COND(!indicators.has(p_id)); indicators[p_id].menu_rid = p_menu_rid; } -void DisplayServerWindows::status_indicator_set_callback(IndicatorID p_id, const Callable &p_callback) { +void DisplayServerWindows::status_indicator_set_callback(DisplayServerEnums::IndicatorID p_id, const Callable &p_callback) { ERR_FAIL_COND(!indicators.has(p_id)); indicators[p_id].callback = p_callback; } -Rect2 DisplayServerWindows::status_indicator_get_rect(IndicatorID p_id) const { +Rect2 DisplayServerWindows::status_indicator_get_rect(DisplayServerEnums::IndicatorID p_id) const { ERR_FAIL_COND_V(!indicators.has(p_id), Rect2()); NOTIFYICONIDENTIFIER nid; ZeroMemory(&nid, sizeof(NOTIFYICONIDENTIFIER)); nid.cbSize = sizeof(NOTIFYICONIDENTIFIER); - nid.hWnd = windows[MAIN_WINDOW_ID].hWnd; + nid.hWnd = windows[DisplayServerEnums::MAIN_WINDOW_ID].hWnd; nid.uID = p_id; nid.guidItem = GUID_NULL; @@ -4550,7 +4550,7 @@ Rect2 DisplayServerWindows::status_indicator_get_rect(IndicatorID p_id) const { return Rect2(); } -void DisplayServerWindows::delete_status_indicator(IndicatorID p_id) { +void DisplayServerWindows::delete_status_indicator(DisplayServerEnums::IndicatorID p_id) { ERR_FAIL_COND(!indicators.has(p_id)); IndicatorData &idat = indicators[p_id]; @@ -4563,7 +4563,7 @@ void DisplayServerWindows::delete_status_indicator(IndicatorID p_id) { NOTIFYICONDATAW ndat; ZeroMemory(&ndat, sizeof(NOTIFYICONDATAW)); ndat.cbSize = sizeof(NOTIFYICONDATAW); - ndat.hWnd = windows[MAIN_WINDOW_ID].hWnd; + ndat.hWnd = windows[DisplayServerEnums::MAIN_WINDOW_ID].hWnd; ndat.uID = p_id; ndat.uVersion = NOTIFYICON_VERSION; @@ -4571,7 +4571,7 @@ void DisplayServerWindows::delete_status_indicator(IndicatorID p_id) { indicators.erase(p_id); } -void DisplayServerWindows::window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window) { +void DisplayServerWindows::window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) if (rendering_context) { @@ -4581,15 +4581,15 @@ void DisplayServerWindows::window_set_vsync_mode(DisplayServer::VSyncMode p_vsyn #if defined(GLES3_ENABLED) if (gl_manager_native) { - gl_manager_native->set_use_vsync(p_window, p_vsync_mode != DisplayServer::VSYNC_DISABLED); + gl_manager_native->set_use_vsync(p_window, p_vsync_mode != DisplayServerEnums::VSYNC_DISABLED); } if (gl_manager_angle) { - gl_manager_angle->set_use_vsync(p_vsync_mode != DisplayServer::VSYNC_DISABLED); + gl_manager_angle->set_use_vsync(p_vsync_mode != DisplayServerEnums::VSYNC_DISABLED); } #endif } -DisplayServer::VSyncMode DisplayServerWindows::window_get_vsync_mode(WindowID p_window) const { +DisplayServerEnums::VSyncMode DisplayServerWindows::window_get_vsync_mode(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) if (rendering_context) { @@ -4599,16 +4599,16 @@ DisplayServer::VSyncMode DisplayServerWindows::window_get_vsync_mode(WindowID p_ #if defined(GLES3_ENABLED) if (gl_manager_native) { - return gl_manager_native->is_using_vsync(p_window) ? DisplayServer::VSYNC_ENABLED : DisplayServer::VSYNC_DISABLED; + return gl_manager_native->is_using_vsync(p_window) ? DisplayServerEnums::VSYNC_ENABLED : DisplayServerEnums::VSYNC_DISABLED; } if (gl_manager_angle) { - return gl_manager_angle->is_using_vsync() ? DisplayServer::VSYNC_ENABLED : DisplayServer::VSYNC_DISABLED; + return gl_manager_angle->is_using_vsync() ? DisplayServerEnums::VSYNC_ENABLED : DisplayServerEnums::VSYNC_DISABLED; } #endif - return DisplayServer::VSYNC_ENABLED; + return DisplayServerEnums::VSYNC_ENABLED; } -bool DisplayServerWindows::window_is_hdr_output_supported(WindowID p_window) const { +bool DisplayServerWindows::window_is_hdr_output_supported(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) @@ -4623,7 +4623,7 @@ bool DisplayServerWindows::window_is_hdr_output_supported(WindowID p_window) con return data.hdr_supported; } -void DisplayServerWindows::window_request_hdr_output(const bool p_enable, WindowID p_window) { +void DisplayServerWindows::window_request_hdr_output(const bool p_enable, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) @@ -4638,14 +4638,14 @@ void DisplayServerWindows::window_request_hdr_output(const bool p_enable, Window _update_hdr_output_for_window(p_window, wd, data); } -bool DisplayServerWindows::window_is_hdr_output_requested(WindowID p_window) const { +bool DisplayServerWindows::window_is_hdr_output_requested(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ const WindowData &wd = windows[p_window]; return wd.hdr_output_requested; } -bool DisplayServerWindows::window_is_hdr_output_enabled(WindowID p_window) const { +bool DisplayServerWindows::window_is_hdr_output_enabled(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) @@ -4657,7 +4657,7 @@ bool DisplayServerWindows::window_is_hdr_output_enabled(WindowID p_window) const return false; } -void DisplayServerWindows::window_set_hdr_output_reference_luminance(const float p_reference_luminance, WindowID p_window) { +void DisplayServerWindows::window_set_hdr_output_reference_luminance(const float p_reference_luminance, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ WindowData &wd = windows[p_window]; @@ -4683,14 +4683,14 @@ void DisplayServerWindows::window_set_hdr_output_reference_luminance(const float } } -float DisplayServerWindows::window_get_hdr_output_reference_luminance(WindowID p_window) const { +float DisplayServerWindows::window_get_hdr_output_reference_luminance(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ const WindowData &wd = windows[p_window]; return wd.hdr_output_reference_luminance; } -float DisplayServerWindows::window_get_hdr_output_current_reference_luminance(WindowID p_window) const { +float DisplayServerWindows::window_get_hdr_output_current_reference_luminance(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) @@ -4702,7 +4702,7 @@ float DisplayServerWindows::window_get_hdr_output_current_reference_luminance(Wi return 0.0f; } -void DisplayServerWindows::window_set_hdr_output_max_luminance(const float p_max_luminance, WindowID p_window) { +void DisplayServerWindows::window_set_hdr_output_max_luminance(const float p_max_luminance, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ WindowData &wd = windows[p_window]; @@ -4728,14 +4728,14 @@ void DisplayServerWindows::window_set_hdr_output_max_luminance(const float p_max } } -float DisplayServerWindows::window_get_hdr_output_max_luminance(WindowID p_window) const { +float DisplayServerWindows::window_get_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ const WindowData &wd = windows[p_window]; return wd.hdr_output_max_luminance; } -float DisplayServerWindows::window_get_hdr_output_current_max_luminance(WindowID p_window) const { +float DisplayServerWindows::window_get_hdr_output_current_max_luminance(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) @@ -4747,7 +4747,7 @@ float DisplayServerWindows::window_get_hdr_output_current_max_luminance(WindowID return 0.0f; } -float DisplayServerWindows::window_get_output_max_linear_value(WindowID p_window) const { +float DisplayServerWindows::window_get_output_max_linear_value(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ #if defined(RD_ENABLED) @@ -4759,7 +4759,7 @@ float DisplayServerWindows::window_get_output_max_linear_value(WindowID p_window return 1.0f; // SDR } -void DisplayServerWindows::window_start_drag(WindowID p_window) { +void DisplayServerWindows::window_start_drag(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -4791,10 +4791,10 @@ void DisplayServerWindows::window_start_drag(WindowID p_window) { } } -void DisplayServerWindows::window_start_resize(WindowResizeEdge p_edge, WindowID p_window) { +void DisplayServerWindows::window_start_resize(DisplayServerEnums::WindowResizeEdge p_edge, DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ - ERR_FAIL_INDEX(int(p_edge), WINDOW_EDGE_MAX); + ERR_FAIL_INDEX(int(p_edge), DisplayServerEnums::WINDOW_EDGE_MAX); ERR_FAIL_COND(!windows.has(p_window)); WindowData &wd = windows[p_window]; @@ -4810,28 +4810,28 @@ void DisplayServerWindows::window_start_resize(WindowResizeEdge p_edge, WindowID DWORD op = 0; switch (p_edge) { - case DisplayServer::WINDOW_EDGE_TOP_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_TOP_LEFT: { op = WMSZ_TOPLEFT; } break; - case DisplayServer::WINDOW_EDGE_TOP: { + case DisplayServerEnums::WINDOW_EDGE_TOP: { op = WMSZ_TOP; } break; - case DisplayServer::WINDOW_EDGE_TOP_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_TOP_RIGHT: { op = WMSZ_TOPRIGHT; } break; - case DisplayServer::WINDOW_EDGE_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_LEFT: { op = WMSZ_LEFT; } break; - case DisplayServer::WINDOW_EDGE_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_RIGHT: { op = WMSZ_RIGHT; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM_LEFT: { op = WMSZ_BOTTOMLEFT; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM: { op = WMSZ_BOTTOM; } break; - case DisplayServer::WINDOW_EDGE_BOTTOM_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM_RIGHT: { op = WMSZ_BOTTOMRIGHT; } break; default: @@ -4854,7 +4854,7 @@ void DisplayServerWindows::window_start_resize(WindowResizeEdge p_edge, WindowID } } -void DisplayServerWindows::set_context(Context p_context) { +void DisplayServerWindows::set_context(DisplayServerEnums::Context p_context) { } bool DisplayServerWindows::is_window_transparency_available() const { @@ -4874,7 +4874,7 @@ bool DisplayServerWindows::is_window_transparency_available() const { // This one tells whether the event comes from touchscreen (and not from pen). #define IsTouchEvent(dw) (IsPenEvent(dw) && ((dw) & 0x80)) -void DisplayServerWindows::_touch_event(WindowID p_window, bool p_pressed, float p_x, float p_y, int idx) { +void DisplayServerWindows::_touch_event(DisplayServerEnums::WindowID p_window, bool p_pressed, float p_x, float p_y, int idx) { if (touch_state.has(idx) == p_pressed) { return; } @@ -4895,7 +4895,7 @@ void DisplayServerWindows::_touch_event(WindowID p_window, bool p_pressed, float Input::get_singleton()->parse_input_event(event); } -void DisplayServerWindows::_drag_event(WindowID p_window, float p_x, float p_y, int idx) { +void DisplayServerWindows::_drag_event(DisplayServerEnums::WindowID p_window, float p_x, float p_y, int idx) { RBMap::Element *curr = touch_state.find(idx); if (!curr) { return; @@ -4918,7 +4918,7 @@ void DisplayServerWindows::_drag_event(WindowID p_window, float p_x, float p_y, curr->get() = Vector2(p_x, p_y); } -void DisplayServerWindows::_send_window_event(const WindowData &wd, WindowEvent p_event) { +void DisplayServerWindows::_send_window_event(const WindowData &wd, DisplayServerEnums::WindowEvent p_event) { if (wd.event_callback.is_valid()) { Variant event = int(p_event); wd.event_callback.call(event); @@ -4936,7 +4936,7 @@ void DisplayServerWindows::_dispatch_input_event(const Ref &p_event) in_dispatch_input_event = true; { - List::Element *E = popup_list.back(); + List::Element *E = popup_list.back(); if (E && Object::cast_to(*p_event)) { // Redirect keyboard input to active popup. if (windows.has(E->get())) { @@ -4951,7 +4951,7 @@ void DisplayServerWindows::_dispatch_input_event(const Ref &p_event) } Ref event_from_window = p_event; - if (event_from_window.is_valid() && event_from_window->get_window_id() != INVALID_WINDOW_ID) { + if (event_from_window.is_valid() && event_from_window->get_window_id() != DisplayServerEnums::INVALID_WINDOW_ID) { // Send to a single window. if (windows.has(event_from_window->get_window_id())) { Callable callable = windows[event_from_window->get_window_id()].input_event_callback; @@ -4962,7 +4962,7 @@ void DisplayServerWindows::_dispatch_input_event(const Ref &p_event) } else { // Send to all windows. Copy all pending callbacks, since callback can erase window. Vector cbs; - for (KeyValue &E : windows) { + for (KeyValue &E : windows) { Callable callable = E.value.input_event_callback; if (callable.is_valid()) { cbs.push_back(callable); @@ -4985,16 +4985,16 @@ LRESULT CALLBACK MouseProc(int code, WPARAM wParam, LPARAM lParam) { } } -DisplayServer::WindowID DisplayServerWindows::window_get_active_popup() const { - const List::Element *E = popup_list.back(); +DisplayServerEnums::WindowID DisplayServerWindows::window_get_active_popup() const { + const List::Element *E = popup_list.back(); if (E) { return E->get(); } else { - return INVALID_WINDOW_ID; + return DisplayServerEnums::INVALID_WINDOW_ID; } } -void DisplayServerWindows::window_set_popup_safe_rect(WindowID p_window, const Rect2i &p_rect) { +void DisplayServerWindows::window_set_popup_safe_rect(DisplayServerEnums::WindowID p_window, const Rect2i &p_rect) { _THREAD_SAFE_METHOD_ ERR_FAIL_COND(!windows.has(p_window)); @@ -5002,7 +5002,7 @@ void DisplayServerWindows::window_set_popup_safe_rect(WindowID p_window, const R wd.parent_safe_rect = p_rect; } -Rect2i DisplayServerWindows::window_get_popup_safe_rect(WindowID p_window) const { +Rect2i DisplayServerWindows::window_get_popup_safe_rect(DisplayServerEnums::WindowID p_window) const { _THREAD_SAFE_METHOD_ ERR_FAIL_COND_V(!windows.has(p_window), Rect2i()); @@ -5010,14 +5010,14 @@ Rect2i DisplayServerWindows::window_get_popup_safe_rect(WindowID p_window) const return wd.parent_safe_rect; } -void DisplayServerWindows::popup_open(WindowID p_window) { +void DisplayServerWindows::popup_open(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ bool has_popup_ancestor = false; - WindowID transient_root = p_window; + DisplayServerEnums::WindowID transient_root = p_window; while (true) { - WindowID parent = windows[transient_root].transient_parent; - if (parent == INVALID_WINDOW_ID) { + DisplayServerEnums::WindowID parent = windows[transient_root].transient_parent; + if (parent == DisplayServerEnums::INVALID_WINDOW_ID) { break; } else { transient_root = parent; @@ -5029,15 +5029,15 @@ void DisplayServerWindows::popup_open(WindowID p_window) { } // Detect tooltips and other similar popups that shouldn't block input to their parent. - bool ignores_input = window_get_flag(WINDOW_FLAG_NO_FOCUS, p_window) && window_get_flag(WINDOW_FLAG_MOUSE_PASSTHROUGH, p_window); + bool ignores_input = window_get_flag(DisplayServerEnums::WINDOW_FLAG_NO_FOCUS, p_window) && window_get_flag(DisplayServerEnums::WINDOW_FLAG_MOUSE_PASSTHROUGH, p_window); WindowData &wd = windows[p_window]; if (wd.is_popup || (has_popup_ancestor && !ignores_input)) { // Find current popup parent, or root popup if new window is not transient. - List::Element *C = nullptr; - List::Element *E = popup_list.back(); + List::Element *C = nullptr; + List::Element *E = popup_list.back(); while (E) { - if (wd.transient_parent != E->get() || wd.transient_parent == INVALID_WINDOW_ID) { + if (wd.transient_parent != E->get() || wd.transient_parent == DisplayServerEnums::INVALID_WINDOW_ID) { C = E; E = E->prev(); } else { @@ -5045,7 +5045,7 @@ void DisplayServerWindows::popup_open(WindowID p_window) { } } if (C) { - _send_window_event(windows[C->get()], DisplayServerWindows::WINDOW_EVENT_CLOSE_REQUEST); + _send_window_event(windows[C->get()], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); } time_since_popup = OS::get_singleton()->get_ticks_msec(); @@ -5053,18 +5053,18 @@ void DisplayServerWindows::popup_open(WindowID p_window) { } } -void DisplayServerWindows::popup_close(WindowID p_window) { +void DisplayServerWindows::popup_close(DisplayServerEnums::WindowID p_window) { _THREAD_SAFE_METHOD_ - List::Element *E = popup_list.find(p_window); + List::Element *E = popup_list.find(p_window); while (E) { - List::Element *F = E->next(); - WindowID win_id = E->get(); + List::Element *F = E->next(); + DisplayServerEnums::WindowID win_id = E->get(); popup_list.erase(E); if (win_id != p_window) { // Only request close on related windows, not this window. We are already processing it. - _send_window_event(windows[win_id], DisplayServerWindows::WINDOW_EVENT_CLOSE_REQUEST); + _send_window_event(windows[win_id], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); } E = F; } @@ -5108,8 +5108,8 @@ LRESULT DisplayServerWindows::MouseProc(int code, WPARAM wParam, LPARAM lParam) case WM_MBUTTONDOWN: { MOUSEHOOKSTRUCT *ms = (MOUSEHOOKSTRUCT *)lParam; Point2i pos = Point2i(ms->pt.x, ms->pt.y) - _get_screens_origin(); - List::Element *C = nullptr; - List::Element *E = popup_list.back(); + List::Element *C = nullptr; + List::Element *E = popup_list.back(); // Find top popup to close. while (E) { // Popup window area. @@ -5126,7 +5126,7 @@ LRESULT DisplayServerWindows::MouseProc(int code, WPARAM wParam, LPARAM lParam) } } if (C) { - _send_window_event(windows[C->get()], DisplayServerWindows::WINDOW_EVENT_CLOSE_REQUEST); + _send_window_event(windows[C->get()], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); return 1; } } break; @@ -5184,13 +5184,13 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } } - WindowID window_id = INVALID_WINDOW_ID; + DisplayServerEnums::WindowID window_id = DisplayServerEnums::INVALID_WINDOW_ID; bool window_created = false; // Check whether window exists // FIXME this is O(n), where n is the set of currently open windows and subwindows - // we should have a secondary map from HWND to WindowID or even WindowData* alias, if we want to eliminate all the map lookups below - for (const KeyValue &E : windows) { + // we should have a secondary map from HWND to DisplayServerEnums::WindowID or even WindowData* alias, if we want to eliminate all the map lookups below + for (const KeyValue &E : windows) { if (E.value.hWnd == hWnd) { window_id = E.key; window_created = true; @@ -5363,7 +5363,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } break; case WM_INDICATOR_CALLBACK_MESSAGE: { if (lParam == WM_LBUTTONDOWN || lParam == WM_RBUTTONDOWN || lParam == WM_MBUTTONDOWN || lParam == WM_XBUTTONDOWN) { - IndicatorID iid = (IndicatorID)wParam; + DisplayServerEnums::IndicatorID iid = (DisplayServerEnums::IndicatorID)wParam; MouseButton mb = MouseButton::LEFT; if (lParam == WM_RBUTTONDOWN) { mb = MouseButton::RIGHT; @@ -5377,7 +5377,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA NOTIFYICONIDENTIFIER nid; ZeroMemory(&nid, sizeof(NOTIFYICONIDENTIFIER)); nid.cbSize = sizeof(NOTIFYICONIDENTIFIER); - nid.hWnd = windows[MAIN_WINDOW_ID].hWnd; + nid.hWnd = windows[DisplayServerEnums::MAIN_WINDOW_ID].hWnd; nid.uID = iid; nid.guidItem = GUID_NULL; @@ -5405,16 +5405,16 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA KillTimer(windows[window_id].hWnd, windows[window_id].activate_timer_id); windows[window_id].activate_timer_id = 0; } - _send_window_event(windows[window_id], WINDOW_EVENT_CLOSE_REQUEST); + _send_window_event(windows[window_id], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); return 0; } case WM_MOUSELEAVE: { if (window_mouseover_id == window_id) { old_invalid = true; - window_mouseover_id = INVALID_WINDOW_ID; + window_mouseover_id = DisplayServerEnums::INVALID_WINDOW_ID; - _send_window_event(windows[window_id], WINDOW_EVENT_MOUSE_EXIT); - } else if (window_mouseover_id != INVALID_WINDOW_ID && windows.has(window_mouseover_id)) { + _send_window_event(windows[window_id], DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT); + } else if (window_mouseover_id != DisplayServerEnums::INVALID_WINDOW_ID && windows.has(window_mouseover_id)) { // This is reached during drag and drop, after dropping in a different window. // Once-off notification, must call again. track_mouse_leave_event(windows[window_mouseover_id].hWnd); @@ -5469,7 +5469,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } } } - } else if (mouse_mode == MOUSE_MODE_CAPTURED && raw->header.dwType == RIM_TYPEMOUSE) { + } else if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED && raw->header.dwType == RIM_TYPEMOUSE) { Ref mm; mm.instantiate(); @@ -5568,7 +5568,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA windows[window_id].last_pen_inverted = inverted; // Don't calculate relative mouse movement if we don't have focus in CAPTURED mode. - if (!windows[window_id].window_focused && mouse_mode == MOUSE_MODE_CAPTURED) { + if (!windows[window_id].window_focused && mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { break; } @@ -5590,7 +5590,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA mm->set_position(Vector2(coords.x, coords.y)); mm->set_global_position(Vector2(coords.x, coords.y)); - if (mouse_mode == MOUSE_MODE_CAPTURED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { Point2i c(windows[window_id].width / 2, windows[window_id].height / 2); old_x = c.x; old_y = c.y; @@ -5629,7 +5629,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } } break; case WM_POINTERENTER: { - if (mouse_mode == MOUSE_MODE_CAPTURED && use_raw_input) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED && use_raw_input) { break; } @@ -5658,7 +5658,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } break; case WM_POINTERDOWN: case WM_POINTERUP: { - if (mouse_mode == MOUSE_MODE_CAPTURED && use_raw_input) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED && use_raw_input) { break; } @@ -5717,8 +5717,8 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA uint64_t delta = OS::get_singleton()->get_ticks_msec() - time_since_popup; if (delta > 250) { Point2i pos = Point2i(coords.x, coords.y) - _get_screens_origin(); - List::Element *C = nullptr; - List::Element *E = popup_list.back(); + List::Element *C = nullptr; + List::Element *E = popup_list.back(); // Find top popup to close. while (E) { // Popup window area. @@ -5735,7 +5735,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } } if (C) { - _send_window_event(windows[C->get()], DisplayServerWindows::WINDOW_EVENT_CLOSE_REQUEST); + _send_window_event(windows[C->get()], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); } } @@ -5770,7 +5770,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA return 0; } break; case WM_POINTERUPDATE: { - if (mouse_mode == MOUSE_MODE_CAPTURED && use_raw_input) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED && use_raw_input) { break; } @@ -5804,16 +5804,16 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA if (window_mouseover_id != window_id) { // Mouse enter. - if (mouse_mode != MOUSE_MODE_CAPTURED) { - if (window_mouseover_id != INVALID_WINDOW_ID && windows.has(window_mouseover_id)) { + if (mouse_mode != DisplayServerEnums::MOUSE_MODE_CAPTURED) { + if (window_mouseover_id != DisplayServerEnums::INVALID_WINDOW_ID && windows.has(window_mouseover_id)) { // Leave previous window. - _send_window_event(windows[window_mouseover_id], WINDOW_EVENT_MOUSE_EXIT); + _send_window_event(windows[window_mouseover_id], DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT); } - _send_window_event(windows[window_id], WINDOW_EVENT_MOUSE_ENTER); + _send_window_event(windows[window_id], DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER); } - CursorShape c = cursor_shape; - cursor_shape = CURSOR_MAX; + DisplayServerEnums::CursorShape c = cursor_shape; + cursor_shape = DisplayServerEnums::CURSOR_MAX; cursor_set_shape(c); window_mouseover_id = window_id; @@ -5822,7 +5822,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } // Don't calculate relative mouse movement if we don't have focus in CAPTURED mode. - if (!windows[window_id].window_focused && mouse_mode == MOUSE_MODE_CAPTURED) { + if (!windows[window_id].window_focused && mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { break; } @@ -5873,7 +5873,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA mm->set_position(Vector2(coords.x, coords.y)); mm->set_global_position(Vector2(coords.x, coords.y)); - if (mouse_mode == MOUSE_MODE_CAPTURED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { Point2i c(windows[window_id].width / 2, windows[window_id].height / 2); old_x = c.x; old_y = c.y; @@ -5914,7 +5914,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA break; } - if (mouse_mode == MOUSE_MODE_CAPTURED && use_raw_input) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED && use_raw_input) { break; } @@ -5926,27 +5926,27 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } } - DisplayServer::WindowID over_id = get_window_at_screen_position(mouse_get_position()); + DisplayServerEnums::WindowID over_id = get_window_at_screen_position(mouse_get_position()); if (windows.has(over_id) && !Rect2(window_get_position(over_id), Point2(windows[over_id].width, windows[over_id].height)).has_point(mouse_get_position())) { // Don't consider the windowborder as part of the window. - over_id = INVALID_WINDOW_ID; + over_id = DisplayServerEnums::INVALID_WINDOW_ID; } if (window_mouseover_id != over_id) { // Mouse enter. - if (mouse_mode != MOUSE_MODE_CAPTURED) { - if (window_mouseover_id != INVALID_WINDOW_ID && windows.has(window_mouseover_id)) { + if (mouse_mode != DisplayServerEnums::MOUSE_MODE_CAPTURED) { + if (window_mouseover_id != DisplayServerEnums::INVALID_WINDOW_ID && windows.has(window_mouseover_id)) { // Leave previous window. - _send_window_event(windows[window_mouseover_id], WINDOW_EVENT_MOUSE_EXIT); + _send_window_event(windows[window_mouseover_id], DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT); } - if (over_id != INVALID_WINDOW_ID && windows.has(over_id)) { - _send_window_event(windows[over_id], WINDOW_EVENT_MOUSE_ENTER); + if (over_id != DisplayServerEnums::INVALID_WINDOW_ID && windows.has(over_id)) { + _send_window_event(windows[over_id], DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER); } } - CursorShape c = cursor_shape; - cursor_shape = CURSOR_MAX; + DisplayServerEnums::CursorShape c = cursor_shape; + cursor_shape = DisplayServerEnums::CURSOR_MAX; cursor_set_shape(c); window_mouseover_id = over_id; @@ -5955,14 +5955,14 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } // Don't calculate relative mouse movement if we don't have focus in CAPTURED mode. - if (!windows[window_id].window_focused && mouse_mode == MOUSE_MODE_CAPTURED) { + if (!windows[window_id].window_focused && mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { break; } - DisplayServer::WindowID receiving_window_id = window_id; + DisplayServerEnums::WindowID receiving_window_id = window_id; if (!windows[window_id].no_focus) { receiving_window_id = _get_focused_window_or_popup(); - if (receiving_window_id == INVALID_WINDOW_ID) { + if (receiving_window_id == DisplayServerEnums::INVALID_WINDOW_ID) { receiving_window_id = window_id; } } @@ -6000,7 +6000,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA mm->set_position(Vector2(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); mm->set_global_position(Vector2(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); - if (mouse_mode == MOUSE_MODE_CAPTURED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { Point2i c(windows[window_id].width / 2, windows[window_id].height / 2); old_x = c.x; old_y = c.y; @@ -6181,18 +6181,18 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA mb->set_position(Vector2(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); - if (mouse_mode == MOUSE_MODE_CAPTURED && !use_raw_input) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED && !use_raw_input) { mb->set_position(Vector2(old_x, old_y)); } if (uMsg != WM_MOUSEWHEEL && uMsg != WM_MOUSEHWHEEL) { if (mb->is_pressed()) { - if (++pressrc > 0 && mouse_mode != MOUSE_MODE_CAPTURED) { + if (++pressrc > 0 && mouse_mode != DisplayServerEnums::MOUSE_MODE_CAPTURED) { SetCapture(hWnd); } } else { if (--pressrc <= 0 || mouse_get_button_state().is_empty()) { - if (mouse_mode != MOUSE_MODE_CAPTURED) { + if (mouse_mode != DisplayServerEnums::MOUSE_MODE_CAPTURED) { ReleaseCapture(); } pressrc = 0; @@ -6227,9 +6227,9 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA // on the same window dragging started. if (mb->is_pressed()) { last_mouse_button_down_window = window_id; - } else if (last_mouse_button_down_window != INVALID_WINDOW_ID) { + } else if (last_mouse_button_down_window != DisplayServerEnums::INVALID_WINDOW_ID) { mb->set_window_id(last_mouse_button_down_window); - last_mouse_button_down_window = INVALID_WINDOW_ID; + last_mouse_button_down_window = DisplayServerEnums::INVALID_WINDOW_ID; } } break; @@ -6337,7 +6337,7 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA _update_hdr_output_for_tracked_windows(); // Update cursor clip region after window rect has changed. - if (mouse_mode == MOUSE_MODE_CAPTURED || mouse_mode == MOUSE_MODE_CONFINED || mouse_mode == MOUSE_MODE_CONFINED_HIDDEN) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN) { RECT crect; GetClientRect(window.hWnd, &crect); crect.right -= off.x; @@ -6417,10 +6417,10 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA break; } - if (mouse_mode == MOUSE_MODE_CAPTURED) { + if (mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED) { // When SetCapture is used, ALT+F4 hotkey is ignored by Windows, so handle it ourselves if (wParam == VK_F4 && _get_mods().has_flag(WinKeyModifierMask::ALT) && (uMsg == WM_KEYDOWN || uMsg == WM_SYSKEYDOWN)) { - _send_window_event(windows[window_id], WINDOW_EVENT_CLOSE_REQUEST); + _send_window_event(windows[window_id], DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); } } [[fallthrough]]; @@ -6532,13 +6532,13 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA Input::get_singleton()->flush_buffered_events(); if (window_mouseover_id == window_id) { - window_mouseover_id = INVALID_WINDOW_ID; - _send_window_event(windows[window_id], WINDOW_EVENT_MOUSE_EXIT); + window_mouseover_id = DisplayServerEnums::INVALID_WINDOW_ID; + _send_window_event(windows[window_id], DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT); } } break; case WM_SETCURSOR: { if (LOWORD(lParam) == HTCLIENT) { - if (windows[window_id].window_focused && (mouse_mode == MOUSE_MODE_HIDDEN || mouse_mode == MOUSE_MODE_CAPTURED || mouse_mode == MOUSE_MODE_CONFINED_HIDDEN)) { + if (windows[window_id].window_focused && (mouse_mode == DisplayServerEnums::MOUSE_MODE_HIDDEN || mouse_mode == DisplayServerEnums::MOUSE_MODE_CAPTURED || mouse_mode == DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN)) { // Hide the cursor. if (hCursor == nullptr) { hCursor = SetCursor(nullptr); @@ -6547,8 +6547,8 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA } } else { if (hCursor != nullptr) { - CursorShape c = cursor_shape; - cursor_shape = CURSOR_MAX; + DisplayServerEnums::CursorShape c = cursor_shape; + cursor_shape = DisplayServerEnums::CURSOR_MAX; cursor_set_shape(c); hCursor = nullptr; } @@ -6574,7 +6574,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { } } -void DisplayServerWindows::_process_activate_event(WindowID p_window_id) { +void DisplayServerWindows::_process_activate_event(DisplayServerEnums::WindowID p_window_id) { WindowData &wd = windows[p_window_id]; if (wd.activate_state == WA_ACTIVE || wd.activate_state == WA_CLICKACTIVE) { last_focused_window = p_window_id; @@ -6585,7 +6585,7 @@ void DisplayServerWindows::_process_activate_event(WindowID p_window_id) { wd.window_focused = true; AccessibilityServer::get_singleton()->set_window_focused(p_window_id, true); - _send_window_event(wd, WINDOW_EVENT_FOCUS_IN); + _send_window_event(wd, DisplayServerEnums::WINDOW_EVENT_FOCUS_IN); } else { // WM_INACTIVE. Input::get_singleton()->release_pressed_events(); track_mouse_leave_event(wd.hWnd); @@ -6600,7 +6600,7 @@ void DisplayServerWindows::_process_activate_event(WindowID p_window_id) { wd.window_focused = false; AccessibilityServer::get_singleton()->set_window_focused(p_window_id, false); - _send_window_event(wd, WINDOW_EVENT_FOCUS_OUT); + _send_window_event(wd, DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT); } if ((tablet_get_current_driver() == "wintab") && wintab_available && wd.wtctx) { @@ -6775,7 +6775,7 @@ void DisplayServerWindows::_process_key_events() { } void DisplayServerWindows::_update_tablet_ctx(const String &p_old_driver, const String &p_new_driver) { - for (KeyValue &E : windows) { + for (KeyValue &E : windows) { WindowData &wd = E.value; wd.block_mm = false; if ((p_old_driver == "wintab") && wintab_available && wd.wtctx) { @@ -6813,11 +6813,11 @@ void DisplayServerWindows::_update_tablet_ctx(const String &p_old_driver, const } } -Error DisplayServerWindows::_create_window(WindowID p_window_id, WindowMode p_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, WindowID p_transient_parent, HWND p_parent_hwnd, bool p_no_redirection_bitmap) { +Error DisplayServerWindows::_create_window(DisplayServerEnums::WindowID p_window_id, DisplayServerEnums::WindowMode p_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, DisplayServerEnums::WindowID p_transient_parent, HWND p_parent_hwnd, bool p_no_redirection_bitmap) { DWORD dwExStyle; DWORD dwStyle; - _get_window_style(p_window_id == MAIN_WINDOW_ID, false, (p_mode == WINDOW_MODE_FULLSCREEN || p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN), p_mode != WINDOW_MODE_EXCLUSIVE_FULLSCREEN, p_flags & WINDOW_FLAG_BORDERLESS_BIT, !(p_flags & WINDOW_FLAG_RESIZE_DISABLED_BIT), p_flags & WINDOW_FLAG_MINIMIZE_DISABLED_BIT, p_flags & WINDOW_FLAG_MAXIMIZE_DISABLED_BIT, p_mode == WINDOW_MODE_MINIMIZED, p_mode == WINDOW_MODE_MAXIMIZED, false, (p_flags & WINDOW_FLAG_NO_FOCUS_BIT) | (p_flags & WINDOW_FLAG_POPUP_BIT), p_parent_hwnd, p_no_redirection_bitmap, dwStyle, dwExStyle); + _get_window_style(p_window_id == DisplayServerEnums::MAIN_WINDOW_ID, false, (p_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN || p_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN), p_mode != DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN, p_flags & DisplayServerEnums::WINDOW_FLAG_BORDERLESS_BIT, !(p_flags & DisplayServerEnums::WINDOW_FLAG_RESIZE_DISABLED_BIT), p_flags & DisplayServerEnums::WINDOW_FLAG_MINIMIZE_DISABLED_BIT, p_flags & DisplayServerEnums::WINDOW_FLAG_MAXIMIZE_DISABLED_BIT, p_mode == DisplayServerEnums::WINDOW_MODE_MINIMIZED, p_mode == DisplayServerEnums::WINDOW_MODE_MAXIMIZED, false, (p_flags & DisplayServerEnums::WINDOW_FLAG_NO_FOCUS_BIT) | (p_flags & DisplayServerEnums::WINDOW_FLAG_POPUP_BIT), p_parent_hwnd, p_no_redirection_bitmap, dwStyle, dwExStyle); int rq_screen = get_screen_from_rect(p_rect); if (rq_screen < 0) { @@ -6829,7 +6829,7 @@ Error DisplayServerWindows::_create_window(WindowID p_window_id, WindowMode p_mo RECT WindowRect; - Vector2i off = (p_mode == WINDOW_MODE_FULLSCREEN || ((p_flags & WINDOW_FLAG_BORDERLESS_BIT) && p_mode == WINDOW_MODE_MAXIMIZED)) ? _get_screen_expand_offset(rq_screen) : Vector2i(); + Vector2i off = (p_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN || ((p_flags & DisplayServerEnums::WINDOW_FLAG_BORDERLESS_BIT) && p_mode == DisplayServerEnums::WINDOW_MODE_MAXIMIZED)) ? _get_screen_expand_offset(rq_screen) : Vector2i(); WindowRect.left = p_rect.position.x; WindowRect.right = p_rect.position.x + p_rect.size.x + off.x; @@ -6837,7 +6837,7 @@ Error DisplayServerWindows::_create_window(WindowID p_window_id, WindowMode p_mo WindowRect.bottom = p_rect.position.y + p_rect.size.y + off.y; if (!p_parent_hwnd) { - if (p_mode == WINDOW_MODE_FULLSCREEN || p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN || p_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { Rect2i screen_rect = Rect2i(screen_get_position(rq_screen), screen_get_size(rq_screen)); WindowRect.left = screen_rect.position.x; @@ -6863,20 +6863,20 @@ Error DisplayServerWindows::_create_window(WindowID p_window_id, WindowMode p_mo WindowRect.top += offset.y; WindowRect.bottom += offset.y; - if (p_mode != WINDOW_MODE_FULLSCREEN && p_mode != WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if (p_mode != DisplayServerEnums::WINDOW_MODE_FULLSCREEN && p_mode != DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { AdjustWindowRectEx(&WindowRect, dwStyle, FALSE, dwExStyle); } - WindowID id = p_window_id; + DisplayServerEnums::WindowID id = p_window_id; { WindowData *wd_transient_parent = nullptr; HWND owner_hwnd = nullptr; if (p_parent_hwnd) { owner_hwnd = p_parent_hwnd; - } else if (p_transient_parent != INVALID_WINDOW_ID) { + } else if (p_transient_parent != DisplayServerEnums::INVALID_WINDOW_ID) { if (!windows.has(p_transient_parent)) { ERR_PRINT("Condition \"!windows.has(p_transient_parent)\" is true."); - p_transient_parent = INVALID_WINDOW_ID; + p_transient_parent = DisplayServerEnums::INVALID_WINDOW_ID; } else { wd_transient_parent = &windows[p_transient_parent]; if (p_exclusive) { @@ -6920,14 +6920,14 @@ Error DisplayServerWindows::_create_window(WindowID p_window_id, WindowMode p_mo AttachThreadInput(embeddedThreadId, mainThreadId, FALSE); } - if (p_mode == WINDOW_MODE_FULLSCREEN || p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN || p_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { wd.fullscreen = true; - if (p_mode == WINDOW_MODE_FULLSCREEN) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN) { wd.multiwindow_fs = true; } } - if (p_mode == WINDOW_MODE_FULLSCREEN || p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN || p_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { // Save initial non-fullscreen rect. Rect2i srect = screen_get_usable_rect(rq_screen); Point2i wpos = p_rect.position; @@ -6948,7 +6948,7 @@ Error DisplayServerWindows::_create_window(WindowID p_window_id, WindowMode p_mo wd_transient_parent->transient_children.insert(id); } - wd.sharp_corners = p_flags & WINDOW_FLAG_SHARP_CORNERS_BIT; + wd.sharp_corners = p_flags & DisplayServerEnums::WINDOW_FLAG_SHARP_CORNERS_BIT; { DWORD value = wd.sharp_corners ? DWMWCP_DONOTROUND : DWMWCP_DEFAULT; ::DwmSetWindowAttribute(wd.hWnd, DWMWA_WINDOW_CORNER_PREFERENCE, &value, sizeof(value)); @@ -6991,12 +6991,12 @@ Error DisplayServerWindows::_create_window(WindowID p_window_id, WindowMode p_mo wd.wtctx = nullptr; } - if (p_mode == WINDOW_MODE_MAXIMIZED) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_MAXIMIZED) { wd.maximized = true; wd.minimized = false; } - if (p_mode == WINDOW_MODE_MINIMIZED) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_MINIMIZED) { wd.maximized = false; wd.minimized = true; } @@ -7038,7 +7038,7 @@ Error DisplayServerWindows::_create_window(WindowID p_window_id, WindowMode p_mo wd.im_position = Vector2(); - if (p_mode == WINDOW_MODE_FULLSCREEN || p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN || p_mode == WINDOW_MODE_MAXIMIZED) { + if (p_mode == DisplayServerEnums::WINDOW_MODE_FULLSCREEN || p_mode == DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN || p_mode == DisplayServerEnums::WINDOW_MODE_MAXIMIZED) { RECT r; GetClientRect(wd.hWnd, &r); ClientToScreen(wd.hWnd, (POINT *)&r.left); @@ -7056,7 +7056,7 @@ Error DisplayServerWindows::_create_window(WindowID p_window_id, WindowMode p_mo wd.create_completed = true; // Set size of maximized borderless window (by default it covers the entire screen). - if (!p_parent_hwnd && p_mode == WINDOW_MODE_MAXIMIZED && (p_flags & WINDOW_FLAG_BORDERLESS_BIT)) { + if (!p_parent_hwnd && p_mode == DisplayServerEnums::WINDOW_MODE_MAXIMIZED && (p_flags & DisplayServerEnums::WINDOW_FLAG_BORDERLESS_BIT)) { SetWindowPos(wd.hWnd, HWND_TOP, usable_rect.position.x - off.x, usable_rect.position.y - off.y, usable_rect.size.width + off.x, usable_rect.size.height + off.y, SWP_NOZORDER | SWP_NOACTIVATE); } _update_window_mouse_passthrough(id); @@ -7065,7 +7065,7 @@ Error DisplayServerWindows::_create_window(WindowID p_window_id, WindowMode p_mo return OK; } -void DisplayServerWindows::_destroy_window(WindowID p_window_id) { +void DisplayServerWindows::_destroy_window(DisplayServerEnums::WindowID p_window_id) { WindowData &wd = windows[p_window_id]; IPropertyStore *prop_store; @@ -7092,7 +7092,7 @@ void DisplayServerWindows::_destroy_window(WindowID p_window_id) { } #ifdef RD_ENABLED -Error DisplayServerWindows::_create_rendering_context_window(WindowID p_window_id, const String &p_rendering_driver) { +Error DisplayServerWindows::_create_rendering_context_window(DisplayServerEnums::WindowID p_window_id, const String &p_rendering_driver) { DEV_ASSERT(rendering_context != nullptr); WindowData &wd = windows[p_window_id]; @@ -7127,7 +7127,7 @@ Error DisplayServerWindows::_create_rendering_context_window(WindowID p_window_i return OK; } -void DisplayServerWindows::_destroy_rendering_context_window(WindowID p_window_id) { +void DisplayServerWindows::_destroy_rendering_context_window(DisplayServerEnums::WindowID p_window_id) { DEV_ASSERT(rendering_context != nullptr); WindowData &wd = windows[p_window_id]; @@ -7139,7 +7139,7 @@ void DisplayServerWindows::_destroy_rendering_context_window(WindowID p_window_i #endif #ifdef GLES3_ENABLED -Error DisplayServerWindows::_create_gl_window(WindowID p_window_id) { +Error DisplayServerWindows::_create_gl_window(DisplayServerEnums::WindowID p_window_id) { if (gl_manager_native) { WindowData &wd = windows[p_window_id]; @@ -7400,7 +7400,7 @@ void DisplayServerWindows::tablet_set_current_driver(const String &p_driver) { } } -DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { KeyMappingWindows::initialize(); tested_drivers.clear(); @@ -7412,7 +7412,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win pressrc = 0; old_invalid = true; - mouse_mode = MOUSE_MODE_VISIBLE; + mouse_mode = DisplayServerEnums::MOUSE_MODE_VISIBLE; rendering_driver = p_rendering_driver; @@ -7578,7 +7578,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win return; } - _register_raw_input_devices(INVALID_WINDOW_ID); + _register_raw_input_devices(DisplayServerEnums::INVALID_WINDOW_ID); String appname; if (Engine::get_singleton()->is_editor_hint()) { @@ -7617,8 +7617,8 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win if (p_position != nullptr) { window_position = *p_position; } else { - if (p_screen == SCREEN_OF_MAIN_WINDOW) { - p_screen = SCREEN_PRIMARY; + if (p_screen == DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) { + p_screen = DisplayServerEnums::SCREEN_PRIMARY; } Rect2i scr_rect = screen_get_usable_rect(p_screen); window_position = scr_rect.position + (scr_rect.size - p_resolution) / 2; @@ -7689,23 +7689,23 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win #endif if (cur_no_redirection_bitmap_value != new_no_redirection_bitmap_value) { if (main_window_created) { - _destroy_window(MAIN_WINDOW_ID); + _destroy_window(DisplayServerEnums::MAIN_WINDOW_ID); main_window_created = false; } cur_no_redirection_bitmap_value = new_no_redirection_bitmap_value; } if (!main_window_created) { - if (_create_window(MAIN_WINDOW_ID, p_mode, p_flags, Rect2i(window_position, p_resolution), false, INVALID_WINDOW_ID, parent_hwnd, cur_no_redirection_bitmap_value) != OK) { + if (_create_window(DisplayServerEnums::MAIN_WINDOW_ID, p_mode, p_flags, Rect2i(window_position, p_resolution), false, DisplayServerEnums::INVALID_WINDOW_ID, parent_hwnd, cur_no_redirection_bitmap_value) != OK) { r_error = ERR_UNAVAILABLE; ERR_FAIL_MSG("Failed to create main window."); } main_window_created = true; } - if (_create_rendering_context_window(MAIN_WINDOW_ID, tested_rendering_driver) == OK) { + if (_create_rendering_context_window(DisplayServerEnums::MAIN_WINDOW_ID, tested_rendering_driver) == OK) { rendering_device = memnew(RenderingDevice); - if (rendering_device->initialize(rendering_context, MAIN_WINDOW_ID) == OK) { + if (rendering_device->initialize(rendering_context, DisplayServerEnums::MAIN_WINDOW_ID) == OK) { #ifdef VULKAN_ENABLED if (rendering_driver == "vulkan" && tested_rendering_driver == "d3d12") { WARN_PRINT("Your video card drivers seem not to support Vulkan, switching to Direct3D 12."); @@ -7725,7 +7725,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win memdelete(rendering_device); rendering_device = nullptr; - _destroy_rendering_context_window(MAIN_WINDOW_ID); + _destroy_rendering_context_window(DisplayServerEnums::MAIN_WINDOW_ID); } } @@ -7876,7 +7876,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win if (main_window_created) { if (no_redirection_bitmap != cur_no_redirection_bitmap_value) { DEV_ASSERT(rendering_context == nullptr); - _destroy_window(MAIN_WINDOW_ID); + _destroy_window(DisplayServerEnums::MAIN_WINDOW_ID); } else { should_create_main_window = false; } @@ -7884,7 +7884,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win #endif if (should_create_main_window) { - if (_create_window(MAIN_WINDOW_ID, p_mode, p_flags, Rect2i(window_position, p_resolution), false, INVALID_WINDOW_ID, parent_hwnd, no_redirection_bitmap) != OK) { + if (_create_window(DisplayServerEnums::MAIN_WINDOW_ID, p_mode, p_flags, Rect2i(window_position, p_resolution), false, DisplayServerEnums::INVALID_WINDOW_ID, parent_hwnd, no_redirection_bitmap) != OK) { r_error = ERR_UNAVAILABLE; ERR_FAIL_MSG("Failed to create main window."); } @@ -7893,20 +7893,20 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win #ifdef GLES3_ENABLED if (rendering_driver == "opengl3") { - if (_create_gl_window(MAIN_WINDOW_ID) != OK) { + if (_create_gl_window(DisplayServerEnums::MAIN_WINDOW_ID) != OK) { memdelete(gl_manager_native); gl_manager_native = nullptr; - windows.erase(MAIN_WINDOW_ID); + windows.erase(DisplayServerEnums::MAIN_WINDOW_ID); r_error = ERR_UNAVAILABLE; return; } RasterizerGLES3::make_current(true); } if (rendering_driver == "opengl3_angle") { - if (_create_gl_window(MAIN_WINDOW_ID) != OK) { + if (_create_gl_window(DisplayServerEnums::MAIN_WINDOW_ID) != OK) { memdelete(gl_manager_angle); gl_manager_angle = nullptr; - windows.erase(MAIN_WINDOW_ID); + windows.erase(DisplayServerEnums::MAIN_WINDOW_ID); r_error = ERR_UNAVAILABLE; return; } @@ -7914,7 +7914,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win } #endif - window_set_vsync_mode(p_vsync_mode, MAIN_WINDOW_ID); + window_set_vsync_mode(p_vsync_mode, DisplayServerEnums::MAIN_WINDOW_ID); #ifdef SDL_ENABLED joypad_sdl = memnew(JoypadSDL); @@ -7925,13 +7925,13 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win } #endif - for (int i = 0; i < WINDOW_FLAG_MAX; i++) { + for (int i = 0; i < DisplayServerEnums::WINDOW_FLAG_MAX; i++) { if (p_flags & (1 << i)) { - window_set_flag(WindowFlags(i), true, MAIN_WINDOW_ID); + window_set_flag(DisplayServerEnums::WindowFlags(i), true, DisplayServerEnums::MAIN_WINDOW_ID); } } - windows[MAIN_WINDOW_ID].initialized = true; + windows[DisplayServerEnums::MAIN_WINDOW_ID].initialized = true; #ifdef ACCESSKIT_ENABLED if (accessibility_screen_reader_active()) { @@ -7957,7 +7957,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win if (rendering_context) { DEV_ASSERT(rendering_device != nullptr); - rendering_device->screen_create(MAIN_WINDOW_ID); + rendering_device->screen_create(DisplayServerEnums::MAIN_WINDOW_ID); RendererCompositorRD::make_current(); } @@ -7980,13 +7980,13 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL); } - cursor_shape = CURSOR_ARROW; + cursor_shape = DisplayServerEnums::CURSOR_ARROW; - _update_real_mouse_position(MAIN_WINDOW_ID); + _update_real_mouse_position(DisplayServerEnums::MAIN_WINDOW_ID); r_error = OK; - static_cast(OS::get_singleton())->set_main_window(windows[MAIN_WINDOW_ID].hWnd); + static_cast(OS::get_singleton())->set_main_window(windows[DisplayServerEnums::MAIN_WINDOW_ID].hWnd); Input::get_singleton()->set_event_dispatch_function(_dispatch_input_events); } @@ -8008,7 +8008,7 @@ Vector DisplayServerWindows::get_rendering_drivers_func() { return drivers; } -DisplayServer *DisplayServerWindows::create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServer *DisplayServerWindows::create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { DisplayServer *ds = memnew(DisplayServerWindows(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_position, p_resolution, p_screen, p_context, p_parent_window, r_error)); if (r_error != OK) { if (tested_drivers == 0) { @@ -8080,11 +8080,11 @@ DisplayServerWindows::~DisplayServerWindows() { cursors_cache.clear(); // Destroy all status indicators. - for (HashMap::Iterator E = indicators.begin(); E; ++E) { + for (HashMap::Iterator E = indicators.begin(); E; ++E) { NOTIFYICONDATAW ndat; ZeroMemory(&ndat, sizeof(NOTIFYICONDATAW)); ndat.cbSize = sizeof(NOTIFYICONDATAW); - ndat.hWnd = windows[MAIN_WINDOW_ID].hWnd; + ndat.hWnd = windows[DisplayServerEnums::MAIN_WINDOW_ID].hWnd; ndat.uID = E->key; ndat.uVersion = NOTIFYICON_VERSION; @@ -8102,7 +8102,7 @@ DisplayServerWindows::~DisplayServerWindows() { } if (user_proc) { - SetWindowLongPtr(windows[MAIN_WINDOW_ID].hWnd, GWLP_WNDPROC, (LONG_PTR)user_proc); + SetWindowLongPtr(windows[DisplayServerEnums::MAIN_WINDOW_ID].hWnd, GWLP_WNDPROC, (LONG_PTR)user_proc); } // Close power request handle. @@ -8118,17 +8118,17 @@ DisplayServerWindows::~DisplayServerWindows() { // FIXME wglDeleteContext is never called #endif - if (windows.has(MAIN_WINDOW_ID)) { + if (windows.has(DisplayServerEnums::MAIN_WINDOW_ID)) { #ifdef RD_ENABLED if (rendering_device) { - rendering_device->screen_free(MAIN_WINDOW_ID); + rendering_device->screen_free(DisplayServerEnums::MAIN_WINDOW_ID); } if (rendering_context) { - rendering_context->window_destroy(MAIN_WINDOW_ID); + rendering_context->window_destroy(DisplayServerEnums::MAIN_WINDOW_ID); } #endif - _destroy_window(MAIN_WINDOW_ID); + _destroy_window(DisplayServerEnums::MAIN_WINDOW_ID); } #ifdef RD_ENABLED diff --git a/platform/windows/display_server_windows.h b/platform/windows/display_server_windows.h index a942c8bb6824..f6f9e2df48c8 100644 --- a/platform/windows/display_server_windows.h +++ b/platform/windows/display_server_windows.h @@ -246,14 +246,14 @@ class DisplayServerWindows : public DisplayServer { }; struct KeyEvent { - WindowID window_id; + DisplayServerEnums::WindowID window_id; bool alt, shift, control, meta, altgr; UINT uMsg; WPARAM wParam; LPARAM lParam; }; - WindowID window_mouseover_id = INVALID_WINDOW_ID; + DisplayServerEnums::WindowID window_mouseover_id = DisplayServerEnums::INVALID_WINDOW_ID; KeyEvent key_event_buffer[KEY_EVENT_BUFFER_SIZE]; int key_event_pos; @@ -293,10 +293,10 @@ class DisplayServerWindows : public DisplayServer { struct WindowData { HWND hWnd; - WindowID id; + DisplayServerEnums::WindowID id; Vector mpath; - ProgressState progress_state = PROGRESS_STATE_NOPROGRESS; + DisplayServerEnums::ProgressState progress_state = DisplayServerEnums::PROGRESS_STATE_NOPROGRESS; float progress_value = 0.0; bool create_completed = false; @@ -376,8 +376,8 @@ class DisplayServerWindows : public DisplayServer { // OLE API DropTargetWindows *drop_target = nullptr; - WindowID transient_parent = INVALID_WINDOW_ID; - HashSet transient_children; + DisplayServerEnums::WindowID transient_parent = DisplayServerEnums::INVALID_WINDOW_ID; + HashSet transient_children; bool is_popup = false; Rect2i parent_safe_rect; @@ -398,26 +398,26 @@ class DisplayServerWindows : public DisplayServer { JoypadSDL *joypad_sdl = nullptr; #endif HHOOK mouse_monitor = nullptr; - List popup_list; + List popup_list; uint64_t time_since_popup = 0; - Error _create_window(WindowID p_window_id, WindowMode p_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, WindowID p_transient_parent, HWND p_parent_hwnd, bool p_no_redirection_bitmap); - void _destroy_window(WindowID p_window_id); // Destroys only what was needed to be created for the main window. Does not destroy transient parent dependencies or GL/rendering context windows. + Error _create_window(DisplayServerEnums::WindowID p_window_id, DisplayServerEnums::WindowMode p_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, DisplayServerEnums::WindowID p_transient_parent, HWND p_parent_hwnd, bool p_no_redirection_bitmap); + void _destroy_window(DisplayServerEnums::WindowID p_window_id); // Destroys only what was needed to be created for the main window. Does not destroy transient parent dependencies or GL/rendering context windows. #ifdef RD_ENABLED - Error _create_rendering_context_window(WindowID p_window_id, const String &p_rendering_driver); - void _destroy_rendering_context_window(WindowID p_window_id); + Error _create_rendering_context_window(DisplayServerEnums::WindowID p_window_id, const String &p_rendering_driver); + void _destroy_rendering_context_window(DisplayServerEnums::WindowID p_window_id); #endif #ifdef GLES3_ENABLED - Error _create_gl_window(WindowID p_window_id); + Error _create_gl_window(DisplayServerEnums::WindowID p_window_id); #endif - WindowID window_id_counter = MAIN_WINDOW_ID; - RBMap windows; + DisplayServerEnums::WindowID window_id_counter = DisplayServerEnums::MAIN_WINDOW_ID; + RBMap windows; - WindowID last_focused_window = INVALID_WINDOW_ID; - WindowID last_mouse_button_down_window = INVALID_WINDOW_ID; + DisplayServerEnums::WindowID last_focused_window = DisplayServerEnums::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID last_mouse_button_down_window = DisplayServerEnums::INVALID_WINDOW_ID; HCURSOR hCursor; WNDPROC user_proc = nullptr; @@ -429,8 +429,8 @@ class DisplayServerWindows : public DisplayServer { HICON icon = nullptr; }; - IndicatorID indicator_id_counter = 0; - HashMap indicators; + DisplayServerEnums::IndicatorID indicator_id_counter = 0; + HashMap indicators; struct FileDialogData { HWND hwnd_owner = 0; @@ -441,10 +441,10 @@ class DisplayServerWindows : public DisplayServer { String root; String filename; bool show_hidden = false; - DisplayServer::FileDialogMode mode = FileDialogMode::FILE_DIALOG_MODE_OPEN_ANY; + DisplayServerEnums::FileDialogMode mode = DisplayServerEnums::FileDialogMode::FILE_DIALOG_MODE_OPEN_ANY; Vector filters; TypedArray options; - WindowID window_id = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID window_id = DisplayServerEnums::INVALID_WINDOW_ID; Callable callback; bool options_in_cb = false; Thread listener_thread; @@ -472,12 +472,12 @@ class DisplayServerWindows : public DisplayServer { HashMap pointer_down_time; HashMap pointer_last_pos; - void _send_window_event(const WindowData &wd, WindowEvent p_event); + void _send_window_event(const WindowData &wd, DisplayServerEnums::WindowEvent p_event); void _get_window_style(bool p_main_window, bool p_initialized, bool p_fullscreen, bool p_multiwindow_fs, bool p_borderless, bool p_resizable, bool p_no_min_btn, bool p_no_max_btn, bool p_minimized, bool p_maximized, bool p_maximized_fs, bool p_no_activate_focus, bool p_embed_child, bool p_no_redirection_bitmap, DWORD &r_style, DWORD &r_style_ex); - MouseMode mouse_mode; - MouseMode mouse_mode_base = MOUSE_MODE_VISIBLE; - MouseMode mouse_mode_override = MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode; + DisplayServerEnums::MouseMode mouse_mode_base = DisplayServerEnums::MOUSE_MODE_VISIBLE; + DisplayServerEnums::MouseMode mouse_mode_override = DisplayServerEnums::MOUSE_MODE_VISIBLE; bool mouse_mode_override_enabled = false; void _mouse_update_mode(); int restore_mouse_trails = 0; @@ -490,28 +490,28 @@ class DisplayServerWindows : public DisplayServer { HBRUSH window_bkg_brush = nullptr; uint32_t window_bkg_brush_color = 0; - HCURSOR cursors[CURSOR_MAX] = { nullptr }; - CursorShape cursor_shape = CursorShape::CURSOR_ARROW; - RBMap> cursors_cache; + HCURSOR cursors[DisplayServerEnums::CURSOR_MAX] = { nullptr }; + DisplayServerEnums::CursorShape cursor_shape = DisplayServerEnums::CursorShape::CURSOR_ARROW; + RBMap> cursors_cache; Callable system_theme_changed; - void _drag_event(WindowID p_window, float p_x, float p_y, int idx); - void _touch_event(WindowID p_window, bool p_pressed, float p_x, float p_y, int idx); + void _drag_event(DisplayServerEnums::WindowID p_window, float p_x, float p_y, int idx); + void _touch_event(DisplayServerEnums::WindowID p_window, bool p_pressed, float p_x, float p_y, int idx); - bool _is_always_on_top_recursive(WindowID p_window) const; + bool _is_always_on_top_recursive(DisplayServerEnums::WindowID p_window) const; - void _update_window_style(WindowID p_window, bool p_repaint = true); - void _update_window_mouse_passthrough(WindowID p_window); + void _update_window_style(DisplayServerEnums::WindowID p_window, bool p_repaint = true); + void _update_window_mouse_passthrough(DisplayServerEnums::WindowID p_window); - void _update_real_mouse_position(WindowID p_window); + void _update_real_mouse_position(DisplayServerEnums::WindowID p_window); - void _set_mouse_mode_impl(MouseMode p_mode); - WindowID _get_focused_window_or_popup() const; - void _register_raw_input_devices(WindowID p_target_window); + void _set_mouse_mode_impl(DisplayServerEnums::MouseMode p_mode); + DisplayServerEnums::WindowID _get_focused_window_or_popup() const; + void _register_raw_input_devices(DisplayServerEnums::WindowID p_target_window); bool _has_moving_window() const; - void _process_activate_event(WindowID p_window_id); + void _process_activate_event(DisplayServerEnums::WindowID p_window_id); void _process_key_events(); static void _dispatch_input_events(const Ref &p_event); @@ -531,7 +531,7 @@ class DisplayServerWindows : public DisplayServer { }; BitField _get_mods() const; - Error _file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, bool p_options_in_cb, WindowID p_window_id); + Error _file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, bool p_options_in_cb, DisplayServerEnums::WindowID p_window_id); String _get_keyboard_layout_display_name(const String &p_klid) const; String _get_klid(HKL p_hkl) const; @@ -557,7 +557,7 @@ class DisplayServerWindows : public DisplayServer { AHashMap hdr_output_cache; ScreenHdrData _get_screen_hdr_data(int p_screen) const; - void _update_hdr_output_for_window(WindowID p_window, const WindowData &p_window_data, ScreenHdrData p_screen_data); + void _update_hdr_output_for_window(DisplayServerEnums::WindowID p_window, const WindowData &p_window_data, ScreenHdrData p_screen_data); void _update_hdr_output_for_tracked_windows(); public: @@ -565,10 +565,10 @@ class DisplayServerWindows : public DisplayServer { LRESULT WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); LRESULT MouseProc(int code, WPARAM wParam, LPARAM lParam); - void popup_open(WindowID p_window); - void popup_close(WindowID p_window); + void popup_open(DisplayServerEnums::WindowID p_window); + void popup_close(DisplayServerEnums::WindowID p_window); - virtual bool has_feature(Feature p_feature) const override; + virtual bool has_feature(DisplayServerEnums::Feature p_feature) const override; virtual String get_name() const override; virtual bool tts_is_speaking() const override; @@ -586,15 +586,15 @@ class DisplayServerWindows : public DisplayServer { virtual Color get_base_color() const override; virtual void set_system_theme_change_callback(const Callable &p_callable) override; - virtual Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, WindowID p_window_id) override; - virtual Error file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, WindowID p_window_id) override; + virtual Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) override; + virtual Error file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) override; virtual void beep() const override; - virtual void mouse_set_mode(MouseMode p_mode) override; - virtual MouseMode mouse_get_mode() const override; - virtual void mouse_set_mode_override(MouseMode p_mode) override; - virtual MouseMode mouse_get_mode_override() const override; + virtual void mouse_set_mode(DisplayServerEnums::MouseMode p_mode) override; + virtual DisplayServerEnums::MouseMode mouse_get_mode() const override; + virtual void mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) override; + virtual DisplayServerEnums::MouseMode mouse_get_mode_override() const override; virtual void mouse_set_mode_override_enabled(bool p_override_enabled) override; virtual bool mouse_is_mode_override_enabled() const override; @@ -611,90 +611,90 @@ class DisplayServerWindows : public DisplayServer { virtual int get_screen_count() const override; virtual int get_primary_screen() const override; virtual int get_keyboard_focus_screen() const override; - virtual Point2i screen_get_position(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Size2i screen_get_size(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual Rect2i screen_get_usable_rect(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual int screen_get_dpi(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; - virtual float screen_get_refresh_rate(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual Point2i screen_get_position(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Size2i screen_get_size(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual Rect2i screen_get_usable_rect(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual int screen_get_dpi(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; + virtual float screen_get_refresh_rate(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; virtual Color screen_get_pixel(const Point2i &p_position) const override; - virtual Ref screen_get_image(int p_screen = SCREEN_OF_MAIN_WINDOW) const override; + virtual Ref screen_get_image(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override; virtual Ref screen_get_image_rect(const Rect2i &p_rect) const override; virtual void screen_set_keep_on(bool p_enable) override; //disable screensaver virtual bool screen_is_kept_on() const override; - virtual Vector get_window_list() const override; + virtual Vector get_window_list() const override; - virtual WindowID create_sub_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect = Rect2i(), bool p_exclusive = false, WindowID p_transient_parent = INVALID_WINDOW_ID) override; - virtual void show_window(WindowID p_window) override; - virtual void delete_sub_window(WindowID p_window) override; + virtual DisplayServerEnums::WindowID create_sub_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect = Rect2i(), bool p_exclusive = false, DisplayServerEnums::WindowID p_transient_parent = DisplayServerEnums::INVALID_WINDOW_ID) override; + virtual void show_window(DisplayServerEnums::WindowID p_window) override; + virtual void delete_sub_window(DisplayServerEnums::WindowID p_window) override; - virtual WindowID window_get_active_popup() const override; - virtual void window_set_popup_safe_rect(WindowID p_window, const Rect2i &p_rect) override; - virtual Rect2i window_get_popup_safe_rect(WindowID p_window) const override; + virtual DisplayServerEnums::WindowID window_get_active_popup() const override; + virtual void window_set_popup_safe_rect(DisplayServerEnums::WindowID p_window, const Rect2i &p_rect) override; + virtual Rect2i window_get_popup_safe_rect(DisplayServerEnums::WindowID p_window) const override; - virtual int64_t window_get_native_handle(HandleType p_handle_type, WindowID p_window = MAIN_WINDOW_ID) const override; + virtual int64_t window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual WindowID get_window_at_screen_position(const Point2i &p_position) const override; + virtual DisplayServerEnums::WindowID get_window_at_screen_position(const Point2i &p_position) const override; - virtual void window_attach_instance_id(ObjectID p_instance, WindowID p_window = MAIN_WINDOW_ID) override; - virtual ObjectID window_get_attached_instance_id(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void gl_window_make_current(DisplayServer::WindowID p_window_id) override; + virtual void window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual ObjectID window_get_attached_instance_id(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void gl_window_make_current(DisplayServerEnums::WindowID p_window_id) override; - virtual void window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_window_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_input_text_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_drop_files_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_title(const String &p_title, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_title_size(const String &p_title, WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_mouse_passthrough(const Vector &p_region, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_title_size(const String &p_title, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_mouse_passthrough(const Vector &p_region, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual int window_get_current_screen(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_current_screen(int p_screen, WindowID p_window = MAIN_WINDOW_ID) override; + virtual int window_get_current_screen(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual Point2i window_get_position(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Point2i window_get_position_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual void window_set_position(const Point2i &p_position, WindowID p_window = MAIN_WINDOW_ID) override; + virtual Point2i window_get_position(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Point2i window_get_position_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual void window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void window_set_transient(WindowID p_window, WindowID p_parent) override; - virtual void window_set_exclusive(WindowID p_window, bool p_exclusive) override; + virtual void window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) override; + virtual void window_set_exclusive(DisplayServerEnums::WindowID p_window, bool p_exclusive) override; - virtual void window_set_max_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_max_size(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_max_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_min_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_min_size(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_min_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override; - virtual Size2i window_get_size(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual Size2i window_get_size_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual Size2i window_get_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual Size2i window_get_size_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_mode(WindowMode p_mode, WindowID p_window = MAIN_WINDOW_ID) override; - virtual WindowMode window_get_mode(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::WindowMode window_get_mode(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual bool window_is_maximize_allowed(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_is_maximize_allowed(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_get_flag(WindowFlags p_flag, WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_request_attention(WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_taskbar_progress_value(float p_value, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_taskbar_progress_state(ProgressState p_state, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_move_to_foreground(WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_is_focused(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_request_attention(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_taskbar_progress_value(float p_value, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_taskbar_progress_state(DisplayServerEnums::ProgressState p_state, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_move_to_foreground(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_is_focused(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual WindowID get_focused_window() const override; + virtual DisplayServerEnums::WindowID get_focused_window() const override; - virtual bool window_can_draw(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_can_draw(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; virtual bool can_any_window_draw() const override; - virtual void window_set_ime_active(const bool p_active, WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_set_ime_position(const Point2i &p_pos, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; virtual int accessibility_should_increase_contrast() const override; virtual int accessibility_should_reduce_animation() const override; @@ -704,36 +704,36 @@ class DisplayServerWindows : public DisplayServer { virtual Point2i ime_get_selection() const override; virtual String ime_get_text() const override; - virtual void window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window = MAIN_WINDOW_ID) override; - virtual DisplayServer::VSyncMode window_get_vsync_mode(WindowID p_vsync_mode) const override; + virtual void window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual DisplayServerEnums::VSyncMode window_get_vsync_mode(DisplayServerEnums::WindowID p_vsync_mode) const override; - virtual bool window_is_hdr_output_supported(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual bool window_is_hdr_output_supported(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_request_hdr_output(const bool p_enable, WindowID p_window = MAIN_WINDOW_ID) override; - virtual bool window_is_hdr_output_requested(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual bool window_is_hdr_output_enabled(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_request_hdr_output(const bool p_enable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual bool window_is_hdr_output_requested(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual bool window_is_hdr_output_enabled(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_hdr_output_reference_luminance(const float p_reference_luminance, WindowID p_window = MAIN_WINDOW_ID) override; - virtual float window_get_hdr_output_reference_luminance(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual float window_get_hdr_output_current_reference_luminance(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_hdr_output_reference_luminance(const float p_reference_luminance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual float window_get_hdr_output_reference_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual float window_get_hdr_output_current_reference_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_set_hdr_output_max_luminance(const float p_max_luminance, WindowID p_window = MAIN_WINDOW_ID) override; - virtual float window_get_hdr_output_max_luminance(WindowID p_window = MAIN_WINDOW_ID) const override; - virtual float window_get_hdr_output_current_max_luminance(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual void window_set_hdr_output_max_luminance(const float p_max_luminance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual float window_get_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; + virtual float window_get_hdr_output_current_max_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual float window_get_output_max_linear_value(WindowID p_window = MAIN_WINDOW_ID) const override; + virtual float window_get_output_max_linear_value(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override; - virtual void window_start_drag(WindowID p_window = MAIN_WINDOW_ID) override; - virtual void window_start_resize(WindowResizeEdge p_edge, WindowID p_window = MAIN_WINDOW_ID) override; + virtual void window_start_drag(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; + virtual void window_start_resize(DisplayServerEnums::WindowResizeEdge p_edge, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override; - virtual void cursor_set_shape(CursorShape p_shape) override; - virtual CursorShape cursor_get_shape() const override; - virtual void cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape = CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()) override; + virtual void cursor_set_shape(DisplayServerEnums::CursorShape p_shape) override; + virtual DisplayServerEnums::CursorShape cursor_get_shape() const override; + virtual void cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape = DisplayServerEnums::CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()) override; virtual bool get_swap_cancel_ok() override; virtual void enable_for_stealing_focus(OS::ProcessID pid) override; - virtual Error embed_process(WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) override; + virtual Error embed_process(DisplayServerEnums::WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) override; virtual Error request_close_embedded_process(OS::ProcessID p_pid) override; virtual Error remove_embedded_process(OS::ProcessID p_pid) override; virtual OS::ProcessID get_focused_process_id() override; @@ -765,22 +765,22 @@ class DisplayServerWindows : public DisplayServer { virtual void set_native_icon(const String &p_filename) override; virtual void set_icon(const Ref &p_icon) override; - virtual IndicatorID create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback) override; - virtual void status_indicator_set_icon(IndicatorID p_id, const Ref &p_icon) override; - virtual void status_indicator_set_tooltip(IndicatorID p_id, const String &p_tooltip) override; - virtual void status_indicator_set_menu(IndicatorID p_id, const RID &p_rid) override; - virtual void status_indicator_set_callback(IndicatorID p_id, const Callable &p_callback) override; - virtual Rect2 status_indicator_get_rect(IndicatorID p_id) const override; - virtual void delete_status_indicator(IndicatorID p_id) override; + virtual DisplayServerEnums::IndicatorID create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback) override; + virtual void status_indicator_set_icon(DisplayServerEnums::IndicatorID p_id, const Ref &p_icon) override; + virtual void status_indicator_set_tooltip(DisplayServerEnums::IndicatorID p_id, const String &p_tooltip) override; + virtual void status_indicator_set_menu(DisplayServerEnums::IndicatorID p_id, const RID &p_rid) override; + virtual void status_indicator_set_callback(DisplayServerEnums::IndicatorID p_id, const Callable &p_callback) override; + virtual Rect2 status_indicator_get_rect(DisplayServerEnums::IndicatorID p_id) const override; + virtual void delete_status_indicator(DisplayServerEnums::IndicatorID p_id) override; - virtual void set_context(Context p_context) override; + virtual void set_context(DisplayServerEnums::Context p_context) override; virtual bool is_window_transparency_available() const override; - static DisplayServer *create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + static DisplayServer *create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); static Vector get_rendering_drivers_func(); static void register_windows_driver(); - DisplayServerWindows(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + DisplayServerWindows(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); ~DisplayServerWindows(); }; diff --git a/platform/windows/gl_manager_windows_angle.cpp b/platform/windows/gl_manager_windows_angle.cpp index 571c3cf6dbd6..e748b2ddd818 100644 --- a/platform/windows/gl_manager_windows_angle.cpp +++ b/platform/windows/gl_manager_windows_angle.cpp @@ -67,7 +67,7 @@ Vector GLManagerANGLE_Windows::_get_platform_context_attribs() const { return ret; } -void GLManagerANGLE_Windows::window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height) { +void GLManagerANGLE_Windows::window_resize(DisplayServerEnums::WindowID p_window_id, int p_width, int p_height) { window_make_current(p_window_id); eglWaitNative(EGL_CORE_NATIVE_ENGINE); } diff --git a/platform/windows/gl_manager_windows_angle.h b/platform/windows/gl_manager_windows_angle.h index c83cce4a93f7..cd1fd969c828 100644 --- a/platform/windows/gl_manager_windows_angle.h +++ b/platform/windows/gl_manager_windows_angle.h @@ -35,7 +35,7 @@ #include "core/os/os.h" #include "core/templates/local_vector.h" #include "drivers/egl/egl_manager.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #include @@ -48,7 +48,7 @@ class GLManagerANGLE_Windows : public EGLManager { virtual Vector _get_platform_context_attribs() const override; public: - void window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height); + void window_resize(DisplayServerEnums::WindowID p_window_id, int p_width, int p_height); GLManagerANGLE_Windows() {} ~GLManagerANGLE_Windows() {} diff --git a/platform/windows/gl_manager_windows_native.cpp b/platform/windows/gl_manager_windows_native.cpp index c1d892297b75..5799afb9e750 100644 --- a/platform/windows/gl_manager_windows_native.cpp +++ b/platform/windows/gl_manager_windows_native.cpp @@ -425,7 +425,7 @@ Error GLManagerNative_Windows::_create_context(GLWindow &win, GLDisplay &gl_disp return OK; } -Error GLManagerNative_Windows::window_create(DisplayServer::WindowID p_window_id, HWND p_hwnd, HINSTANCE p_hinstance, int p_width, int p_height) { +Error GLManagerNative_Windows::window_create(DisplayServerEnums::WindowID p_window_id, HWND p_hwnd, HINSTANCE p_hinstance, int p_width, int p_height) { HDC hDC = GetDC(p_hwnd); if (!hDC) { return ERR_CANT_CREATE; @@ -457,7 +457,7 @@ Error GLManagerNative_Windows::window_create(DisplayServer::WindowID p_window_id return OK; } -void GLManagerNative_Windows::window_destroy(DisplayServer::WindowID p_window_id) { +void GLManagerNative_Windows::window_destroy(DisplayServerEnums::WindowID p_window_id) { GLWindow &win = get_window(p_window_id); if (_current_window == &win) { _current_window = nullptr; @@ -477,7 +477,7 @@ void GLManagerNative_Windows::release_current() { _current_window = nullptr; } -void GLManagerNative_Windows::window_make_current(DisplayServer::WindowID p_window_id) { +void GLManagerNative_Windows::window_make_current(DisplayServerEnums::WindowID p_window_id) { if (p_window_id == -1) { return; } @@ -507,7 +507,7 @@ Error GLManagerNative_Windows::initialize() { return OK; } -void GLManagerNative_Windows::set_use_vsync(DisplayServer::WindowID p_window_id, bool p_use) { +void GLManagerNative_Windows::set_use_vsync(DisplayServerEnums::WindowID p_window_id, bool p_use) { GLWindow &win = get_window(p_window_id); if (&win != _current_window) { @@ -525,15 +525,15 @@ void GLManagerNative_Windows::set_use_vsync(DisplayServer::WindowID p_window_id, } } -bool GLManagerNative_Windows::is_using_vsync(DisplayServer::WindowID p_window_id) const { +bool GLManagerNative_Windows::is_using_vsync(DisplayServerEnums::WindowID p_window_id) const { return get_window(p_window_id).use_vsync; } -HDC GLManagerNative_Windows::get_hdc(DisplayServer::WindowID p_window_id) { +HDC GLManagerNative_Windows::get_hdc(DisplayServerEnums::WindowID p_window_id) { return get_window(p_window_id).hDC; } -HGLRC GLManagerNative_Windows::get_hglrc(DisplayServer::WindowID p_window_id) { +HGLRC GLManagerNative_Windows::get_hglrc(DisplayServerEnums::WindowID p_window_id) { const GLWindow &win = get_window(p_window_id); const GLDisplay &disp = get_display(win.gldisplay_id); return disp.hRC; diff --git a/platform/windows/gl_manager_windows_native.h b/platform/windows/gl_manager_windows_native.h index 82074f8fa2cf..d8028b0c3a28 100644 --- a/platform/windows/gl_manager_windows_native.h +++ b/platform/windows/gl_manager_windows_native.h @@ -35,7 +35,7 @@ #include "core/os/os.h" #include "core/templates/local_vector.h" #include "core/templates/rb_map.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #include @@ -60,7 +60,7 @@ class GLManagerNative_Windows { HGLRC hRC; }; - RBMap _windows; + RBMap _windows; LocalVector _displays; GLWindow *_current_window = nullptr; @@ -82,22 +82,22 @@ class GLManagerNative_Windows { Error _create_context(GLWindow &win, GLDisplay &gl_display); public: - Error window_create(DisplayServer::WindowID p_window_id, HWND p_hwnd, HINSTANCE p_hinstance, int p_width, int p_height); - void window_destroy(DisplayServer::WindowID p_window_id); - void window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height) {} + Error window_create(DisplayServerEnums::WindowID p_window_id, HWND p_hwnd, HINSTANCE p_hinstance, int p_width, int p_height); + void window_destroy(DisplayServerEnums::WindowID p_window_id); + void window_resize(DisplayServerEnums::WindowID p_window_id, int p_width, int p_height) {} void release_current(); void swap_buffers(); - void window_make_current(DisplayServer::WindowID p_window_id); + void window_make_current(DisplayServerEnums::WindowID p_window_id); Error initialize(); - void set_use_vsync(DisplayServer::WindowID p_window_id, bool p_use); - bool is_using_vsync(DisplayServer::WindowID p_window_id) const; + void set_use_vsync(DisplayServerEnums::WindowID p_window_id, bool p_use); + bool is_using_vsync(DisplayServerEnums::WindowID p_window_id) const; - HDC get_hdc(DisplayServer::WindowID p_window_id); - HGLRC get_hglrc(DisplayServer::WindowID p_window_id); + HDC get_hdc(DisplayServerEnums::WindowID p_window_id); + HGLRC get_hglrc(DisplayServerEnums::WindowID p_window_id); GLManagerNative_Windows(); ~GLManagerNative_Windows(); diff --git a/platform/windows/native_menu_windows.cpp b/platform/windows/native_menu_windows.cpp index 241985ed14e7..eac74d2b0880 100644 --- a/platform/windows/native_menu_windows.cpp +++ b/platform/windows/native_menu_windows.cpp @@ -170,7 +170,7 @@ void NativeMenuWindows::popup(const RID &p_rid, const Vector2i &p_position) { const MenuData *md = menus.get_or_null(p_rid); ERR_FAIL_NULL(md); - HWND hwnd = (HWND)DisplayServer::get_singleton()->window_get_native_handle(DisplayServer::WINDOW_HANDLE, DisplayServer::MAIN_WINDOW_ID); + HWND hwnd = (HWND)DisplayServer::get_singleton()->window_get_native_handle(DisplayServerEnums::WINDOW_HANDLE, DisplayServerEnums::MAIN_WINDOW_ID); UINT flags = TPM_HORIZONTAL | TPM_LEFTALIGN | TPM_TOPALIGN | TPM_LEFTBUTTON | TPM_VERPOSANIMATION; if (md->is_rtl) { flags |= TPM_LAYOUTRTL; diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index c940549302aa..ce873c938f83 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -2730,7 +2730,7 @@ bool OS_Windows::_test_create_rendering_device_and_gl(const String &p_display_dr bool ok = true; #ifdef GLES3_ENABLED GLManagerNative_Windows *test_gl_manager_native = memnew(GLManagerNative_Windows); - if (test_gl_manager_native->window_create(DisplayServer::MAIN_WINDOW_ID, hWnd, GetModuleHandle(nullptr), 800, 600) == OK) { + if (test_gl_manager_native->window_create(DisplayServerEnums::MAIN_WINDOW_ID, hWnd, GetModuleHandle(nullptr), 800, 600) == OK) { RasterizerGLES3::make_current(true); } else { ok = false; diff --git a/platform/windows/tts_windows.cpp b/platform/windows/tts_windows.cpp index 719853836a1d..15364a248e1b 100644 --- a/platform/windows/tts_windows.cpp +++ b/platform/windows/tts_windows.cpp @@ -30,6 +30,8 @@ #include "tts_windows.h" +#include "servers/display/display_server.h" + TTS_Windows *TTS_Windows::singleton = nullptr; void __stdcall TTS_Windows::speech_event_callback(WPARAM wParam, LPARAM lParam) { @@ -39,9 +41,9 @@ void __stdcall TTS_Windows::speech_event_callback(WPARAM wParam, LPARAM lParam) uint32_t stream_num = (uint32_t)event.ulStreamNum; if (tts->ids.has(stream_num)) { if (event.eEventId == SPEI_START_INPUT_STREAM) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_STARTED, tts->ids[stream_num].id); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_STARTED, tts->ids[stream_num].id); } else if (event.eEventId == SPEI_END_INPUT_STREAM) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_ENDED, tts->ids[stream_num].id); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_ENDED, tts->ids[stream_num].id); tts->ids.erase(stream_num); tts->update_requested = true; } else if (event.eEventId == SPEI_WORD_BOUNDARY) { @@ -54,7 +56,7 @@ void __stdcall TTS_Windows::speech_event_callback(WPARAM wParam, LPARAM lParam) } pos++; } - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_BOUNDARY, tts->ids[stream_num].id, pos - tts->ids[stream_num].offset); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_BOUNDARY, tts->ids[stream_num].id, pos - tts->ids[stream_num].offset); } } } @@ -62,7 +64,7 @@ void __stdcall TTS_Windows::speech_event_callback(WPARAM wParam, LPARAM lParam) void TTS_Windows::process_events() { if (update_requested && !paused && queue.size() > 0 && !is_speaking()) { - DisplayServer::TTSUtterance &message = queue.front()->get(); + TTSUtterance &message = queue.front()->get(); String text; DWORD flags = SPF_ASYNC | SPF_PURGEBEFORESPEAK | SPF_IS_XML; @@ -193,11 +195,11 @@ void TTS_Windows::speak(const String &p_text, const String &p_voice, int p_volum } if (p_text.is_empty()) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, p_utterance_id); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, p_utterance_id); return; } - DisplayServer::TTSUtterance message; + TTSUtterance message; message.text = p_text; message.voice = p_voice; message.volume = CLAMP(p_volume, 0, 100); @@ -235,11 +237,11 @@ void TTS_Windows::stop() { synth->GetStatus(&status, nullptr); uint32_t current_stream = (uint32_t)status.ulCurrentStream; if (ids.has(current_stream)) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, ids[current_stream].id); + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, ids[current_stream].id); ids.erase(current_stream); } - for (DisplayServer::TTSUtterance &message : queue) { - DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, message.id); + for (TTSUtterance &message : queue) { + DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServerEnums::TTS_UTTERANCE_CANCELED, message.id); } queue.clear(); synth->Speak(nullptr, SPF_PURGEBEFORESPEAK, nullptr); diff --git a/platform/windows/tts_windows.h b/platform/windows/tts_windows.h index d841ac4cc280..91dae4d2fa3d 100644 --- a/platform/windows/tts_windows.h +++ b/platform/windows/tts_windows.h @@ -34,7 +34,6 @@ #include "core/templates/hash_map.h" #include "core/templates/list.h" #include "core/variant/array.h" -#include "servers/display/display_server.h" #include #include @@ -44,8 +43,10 @@ #define WIN32_LEAN_AND_MEAN #include +struct TTSUtterance; + class TTS_Windows { - List queue; + List queue; ISpVoice *synth = nullptr; bool paused = false; struct UTData { diff --git a/scene/2d/animated_sprite_2d.cpp b/scene/2d/animated_sprite_2d.cpp index 303181373c77..7d5521dee097 100644 --- a/scene/2d/animated_sprite_2d.cpp +++ b/scene/2d/animated_sprite_2d.cpp @@ -30,6 +30,7 @@ #include "animated_sprite_2d.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "scene/main/viewport.h" #include "servers/display/accessibility_server.h" diff --git a/scene/2d/back_buffer_copy.cpp b/scene/2d/back_buffer_copy.cpp index 1e76826825bf..c50e101e5e63 100644 --- a/scene/2d/back_buffer_copy.cpp +++ b/scene/2d/back_buffer_copy.cpp @@ -30,6 +30,7 @@ #include "back_buffer_copy.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "servers/rendering/rendering_server.h" diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp index bffcc802e0c9..bf3fc5e427b9 100644 --- a/scene/2d/camera_2d.cpp +++ b/scene/2d/camera_2d.cpp @@ -30,6 +30,7 @@ #include "camera_2d.h" +#include "core/config/engine.h" #include "core/config/project_settings.h" #include "core/input/input.h" #include "core/object/class_db.h" diff --git a/scene/2d/light_2d.cpp b/scene/2d/light_2d.cpp index 91f83fd5212d..209101800766 100644 --- a/scene/2d/light_2d.cpp +++ b/scene/2d/light_2d.cpp @@ -30,6 +30,7 @@ #include "light_2d.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "servers/rendering/rendering_server.h" diff --git a/scene/2d/parallax_2d.cpp b/scene/2d/parallax_2d.cpp index 6f99f7c3c307..35e05e2fdd25 100644 --- a/scene/2d/parallax_2d.cpp +++ b/scene/2d/parallax_2d.cpp @@ -30,6 +30,7 @@ #include "parallax_2d.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "scene/main/viewport.h" #include "servers/rendering/rendering_server.h" diff --git a/scene/2d/parallax_layer.cpp b/scene/2d/parallax_layer.cpp index d1186e324581..0b52b1c9cc4e 100644 --- a/scene/2d/parallax_layer.cpp +++ b/scene/2d/parallax_layer.cpp @@ -30,9 +30,9 @@ #include "parallax_layer.h" -#include "parallax_background.h" - +#include "core/config/engine.h" #include "core/object/class_db.h" +#include "scene/2d/parallax_background.h" #include "servers/rendering/rendering_server.h" void ParallaxLayer::set_motion_scale(const Size2 &p_scale) { diff --git a/scene/2d/physics/animatable_body_2d.cpp b/scene/2d/physics/animatable_body_2d.cpp index d36e2a59b45a..84d633e42ea2 100644 --- a/scene/2d/physics/animatable_body_2d.cpp +++ b/scene/2d/physics/animatable_body_2d.cpp @@ -30,6 +30,7 @@ #include "animatable_body_2d.h" +#include "core/config/engine.h" #include "core/object/class_db.h" void AnimatableBody2D::set_sync_to_physics(bool p_enable) { diff --git a/scene/2d/physics/character_body_2d.cpp b/scene/2d/physics/character_body_2d.cpp index a7174abfb2be..374676be1287 100644 --- a/scene/2d/physics/character_body_2d.cpp +++ b/scene/2d/physics/character_body_2d.cpp @@ -30,6 +30,7 @@ #include "character_body_2d.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #ifndef DISABLE_DEPRECATED diff --git a/scene/2d/physics/collision_polygon_2d.cpp b/scene/2d/physics/collision_polygon_2d.cpp index c88fb5ac9cff..5e58d2cc7ea1 100644 --- a/scene/2d/physics/collision_polygon_2d.cpp +++ b/scene/2d/physics/collision_polygon_2d.cpp @@ -30,6 +30,7 @@ #include "collision_polygon_2d.h" +#include "core/config/engine.h" #include "core/math/geometry_2d.h" #include "core/object/class_db.h" #include "scene/2d/physics/area_2d.h" diff --git a/scene/2d/physics/collision_shape_2d.cpp b/scene/2d/physics/collision_shape_2d.cpp index f3fce65c4f0e..fb8e3fe5bc78 100644 --- a/scene/2d/physics/collision_shape_2d.cpp +++ b/scene/2d/physics/collision_shape_2d.cpp @@ -30,6 +30,7 @@ #include "collision_shape_2d.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "scene/2d/physics/area_2d.h" #include "scene/2d/physics/collision_object_2d.h" diff --git a/scene/2d/physics/joints/damped_spring_joint_2d.cpp b/scene/2d/physics/joints/damped_spring_joint_2d.cpp index 602a1f20c5af..3ea4b2e21bb7 100644 --- a/scene/2d/physics/joints/damped_spring_joint_2d.cpp +++ b/scene/2d/physics/joints/damped_spring_joint_2d.cpp @@ -30,6 +30,7 @@ #include "damped_spring_joint_2d.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "scene/2d/physics/physics_body_2d.h" diff --git a/scene/2d/physics/joints/groove_joint_2d.cpp b/scene/2d/physics/joints/groove_joint_2d.cpp index 4e8ff28116f0..40c89ed98cce 100644 --- a/scene/2d/physics/joints/groove_joint_2d.cpp +++ b/scene/2d/physics/joints/groove_joint_2d.cpp @@ -30,6 +30,7 @@ #include "groove_joint_2d.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "scene/2d/physics/physics_body_2d.h" diff --git a/scene/2d/physics/joints/joint_2d.cpp b/scene/2d/physics/joints/joint_2d.cpp index f63503f14fd5..5550111087b8 100644 --- a/scene/2d/physics/joints/joint_2d.cpp +++ b/scene/2d/physics/joints/joint_2d.cpp @@ -30,6 +30,7 @@ #include "joint_2d.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "scene/2d/physics/physics_body_2d.h" diff --git a/scene/2d/physics/joints/pin_joint_2d.cpp b/scene/2d/physics/joints/pin_joint_2d.cpp index 7e86ac3e009d..193991419c05 100644 --- a/scene/2d/physics/joints/pin_joint_2d.cpp +++ b/scene/2d/physics/joints/pin_joint_2d.cpp @@ -30,6 +30,7 @@ #include "pin_joint_2d.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "scene/2d/physics/physics_body_2d.h" diff --git a/scene/2d/physics/ray_cast_2d.cpp b/scene/2d/physics/ray_cast_2d.cpp index b4a3be2cbf9b..7244068601f8 100644 --- a/scene/2d/physics/ray_cast_2d.cpp +++ b/scene/2d/physics/ray_cast_2d.cpp @@ -30,6 +30,7 @@ #include "ray_cast_2d.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "scene/2d/physics/collision_object_2d.h" #include "scene/resources/world_2d.h" diff --git a/scene/2d/physics/rigid_body_2d.cpp b/scene/2d/physics/rigid_body_2d.cpp index a7305559d898..7429a6368fdd 100644 --- a/scene/2d/physics/rigid_body_2d.cpp +++ b/scene/2d/physics/rigid_body_2d.cpp @@ -30,6 +30,7 @@ #include "rigid_body_2d.h" +#include "core/config/engine.h" #include "core/object/class_db.h" void RigidBody2D::_body_enter_tree(ObjectID p_id) { diff --git a/scene/2d/physics/touch_screen_button.cpp b/scene/2d/physics/touch_screen_button.cpp index 8ecb171c217d..6aad3fc71e4a 100644 --- a/scene/2d/physics/touch_screen_button.cpp +++ b/scene/2d/physics/touch_screen_button.cpp @@ -30,10 +30,12 @@ #include "touch_screen_button.h" +#include "core/config/engine.h" #include "core/input/input.h" #include "core/object/class_db.h" #include "scene/main/viewport.h" #include "servers/display/accessibility_server.h" +#include "servers/display/display_server.h" void TouchScreenButton::set_texture_normal(const Ref &p_texture) { if (texture_normal == p_texture) { diff --git a/scene/2d/skeleton_2d.cpp b/scene/2d/skeleton_2d.cpp index 7a513d72ac8e..c7bb34d0cca3 100644 --- a/scene/2d/skeleton_2d.cpp +++ b/scene/2d/skeleton_2d.cpp @@ -30,6 +30,7 @@ #include "skeleton_2d.h" +#include "core/config/engine.h" #include "core/math/transform_interpolator.h" #include "core/object/class_db.h" #include "servers/rendering/rendering_server.h" diff --git a/scene/2d/sprite_2d.cpp b/scene/2d/sprite_2d.cpp index 33e5aec92b7e..f825228ce309 100644 --- a/scene/2d/sprite_2d.cpp +++ b/scene/2d/sprite_2d.cpp @@ -30,6 +30,7 @@ #include "sprite_2d.h" +#include "core/config/engine.h" #include "core/input/input.h" #include "core/object/class_db.h" #include "scene/main/viewport.h" diff --git a/scene/2d/visible_on_screen_notifier_2d.cpp b/scene/2d/visible_on_screen_notifier_2d.cpp index a387dca702c0..2b958059092f 100644 --- a/scene/2d/visible_on_screen_notifier_2d.cpp +++ b/scene/2d/visible_on_screen_notifier_2d.cpp @@ -30,6 +30,7 @@ #include "visible_on_screen_notifier_2d.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "servers/rendering/rendering_server.h" diff --git a/scene/3d/camera_3d.cpp b/scene/3d/camera_3d.cpp index 6fef554ec810..3eb24c7f3f9a 100644 --- a/scene/3d/camera_3d.cpp +++ b/scene/3d/camera_3d.cpp @@ -30,6 +30,7 @@ #include "camera_3d.h" +#include "core/config/engine.h" #include "core/math/projection.h" #include "core/math/transform_interpolator.h" #include "core/object/class_db.h" diff --git a/scene/3d/decal.cpp b/scene/3d/decal.cpp index 6da75ab165bf..776fd2d1fbb7 100644 --- a/scene/3d/decal.cpp +++ b/scene/3d/decal.cpp @@ -31,6 +31,7 @@ #include "decal.h" #include "core/object/class_db.h" +#include "core/os/os.h" #include "servers/rendering/rendering_server.h" void Decal::set_size(const Vector3 &p_size) { diff --git a/scene/3d/light_3d.cpp b/scene/3d/light_3d.cpp index b0705d276fde..bb45757961c6 100644 --- a/scene/3d/light_3d.cpp +++ b/scene/3d/light_3d.cpp @@ -33,6 +33,7 @@ #include "core/config/engine.h" #include "core/config/project_settings.h" #include "core/object/class_db.h" +#include "core/os/os.h" #include "servers/rendering/rendering_server.h" void Light3D::set_param(Param p_param, real_t p_value) { diff --git a/scene/3d/lightmap_gi.cpp b/scene/3d/lightmap_gi.cpp index 8afeb4419724..68f096352f8b 100644 --- a/scene/3d/lightmap_gi.cpp +++ b/scene/3d/lightmap_gi.cpp @@ -43,6 +43,7 @@ #include "scene/resources/environment.h" #include "scene/resources/image_texture.h" #include "scene/resources/sky.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" #include "modules/modules_enabled.gen.h" // For lightmapper_rd. diff --git a/scene/3d/node_3d.cpp b/scene/3d/node_3d.cpp index dab4b11c696d..ca1f027afc11 100644 --- a/scene/3d/node_3d.cpp +++ b/scene/3d/node_3d.cpp @@ -30,6 +30,7 @@ #include "node_3d.h" +#include "core/config/engine.h" #include "core/math/transform_interpolator.h" #include "core/object/class_db.h" #include "scene/3d/visual_instance_3d.h" diff --git a/scene/3d/reflection_probe.cpp b/scene/3d/reflection_probe.cpp index cfa216eeeef9..d0cc98d0147a 100644 --- a/scene/3d/reflection_probe.cpp +++ b/scene/3d/reflection_probe.cpp @@ -30,6 +30,7 @@ #include "reflection_probe.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "servers/rendering/rendering_server.h" diff --git a/scene/3d/xr/xr_nodes.cpp b/scene/3d/xr/xr_nodes.cpp index 7f8404069419..9385aa7e2b90 100644 --- a/scene/3d/xr/xr_nodes.cpp +++ b/scene/3d/xr/xr_nodes.cpp @@ -30,6 +30,7 @@ #include "xr_nodes.h" +#include "core/config/engine.h" #include "core/config/project_settings.h" #include "core/object/class_db.h" #include "scene/main/viewport.h" diff --git a/scene/gui/code_edit.cpp b/scene/gui/code_edit.cpp index 0f0bc421e713..795518552890 100644 --- a/scene/gui/code_edit.cpp +++ b/scene/gui/code_edit.cpp @@ -31,10 +31,12 @@ #include "code_edit.h" #include "code_edit.compat.inc" +#include "core/config/engine.h" #include "core/config/project_settings.h" #include "core/input/input.h" #include "core/object/class_db.h" #include "core/os/keyboard.h" +#include "core/os/os.h" #include "core/string/string_builder.h" #include "core/string/translation_server.h" #include "core/string/ustring.h" diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp index 12cb3e55b9be..06310879879f 100644 --- a/scene/gui/color_picker.cpp +++ b/scene/gui/color_picker.cpp @@ -55,6 +55,7 @@ #include "scene/resources/style_box_texture.h" #include "scene/theme/theme_db.h" #include "servers/display/accessibility_server.h" +#include "servers/display/display_server.h" static inline bool is_color_overbright(const Color &color) { return (color.r > 1.0) || (color.g > 1.0) || (color.b > 1.0); @@ -100,10 +101,10 @@ void ColorPicker::_notification(int p_what) { #endif case NOTIFICATION_READY: { - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_NATIVE_COLOR_PICKER)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_NATIVE_COLOR_PICKER)) { btn_pick->set_tooltip_text(ETR("Pick a color from the screen.")); btn_pick->connect(SceneStringName(pressed), callable_mp(this, &ColorPicker::_pick_button_pressed_native)); - } else if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SCREEN_CAPTURE) && !get_tree()->get_root()->is_embedding_subwindows()) { + } else if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SCREEN_CAPTURE) && !get_tree()->get_root()->is_embedding_subwindows()) { // FIXME: The embedding check is needed to fix a bug in single-window mode (GH-93718). btn_pick->set_tooltip_text(ETR("Pick a color from the screen.")); btn_pick->connect(SceneStringName(pressed), callable_mp(this, &ColorPicker::_pick_button_pressed)); @@ -236,13 +237,13 @@ void ColorPicker::_notification(int p_what) { picker_preview_style_box_color->set_bg_color(c); picker_preview_style_box->set_bg_color(c.get_luminance() < 0.5 ? Color(1.0f, 1.0f, 1.0f) : Color(0.0f, 0.0f, 0.0f)); - if (ds->has_feature(DisplayServer::FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE)) { + if (ds->has_feature(DisplayServerEnums::FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE)) { Ref zoom_preview_img = ds->screen_get_image_rect(Rect2i(ofs.x - 8, ofs.y - 8, 17, 17)); picker_window->set_position(ofs - Vector2(28, 28)); picker_texture_zoom->set_texture(ImageTexture::create_from_image(zoom_preview_img)); } else { - Size2i screen_size = ds->screen_get_size(DisplayServer::SCREEN_WITH_MOUSE_FOCUS); - Vector2i screen_position = ds->screen_get_position(DisplayServer::SCREEN_WITH_MOUSE_FOCUS); + Size2i screen_size = ds->screen_get_size(DisplayServerEnums::SCREEN_WITH_MOUSE_FOCUS); + Vector2i screen_position = ds->screen_get_position(DisplayServerEnums::SCREEN_WITH_MOUSE_FOCUS); float ofs_decal_x = (ofs.x < screen_position.x + screen_size.width - 51) ? 8 : -36; float ofs_decal_y = (ofs.y < screen_position.y + screen_size.height - 51) ? 8 : -36; @@ -1534,7 +1535,7 @@ void ColorPicker::_add_preset_pressed() { void ColorPicker::_pick_button_pressed_native() { if (!DisplayServer::get_singleton()->color_picker(callable_mp(this, &ColorPicker::_native_cb))) { // Fallback to default/legacy picker. - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SCREEN_CAPTURE) && !get_tree()->get_root()->is_embedding_subwindows()) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SCREEN_CAPTURE) && !get_tree()->get_root()->is_embedding_subwindows()) { _pick_button_pressed(); } else { _pick_button_pressed_legacy(); @@ -1557,7 +1558,7 @@ void ColorPicker::_pick_button_pressed() { if (!picker_window) { picker_window = memnew(Popup); - bool has_feature_exclude_from_capture = DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE); + bool has_feature_exclude_from_capture = DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE); if (!has_feature_exclude_from_capture) { picker_window->set_size(Vector2i(28, 28)); } else { @@ -1812,9 +1813,9 @@ void ColorPicker::_pick_button_pressed_legacy() { DisplayServer *ds = DisplayServer::get_singleton(); // Add the Texture of each Window to the Image. - Vector wl = ds->get_window_list(); + Vector wl = ds->get_window_list(); // FIXME: sort windows by visibility. - for (const DisplayServer::WindowID &window_id : wl) { + for (const DisplayServerEnums::WindowID &window_id : wl) { Window *w = Window::get_from_id(window_id); if (!w) { continue; diff --git a/scene/gui/control.compat.inc b/scene/gui/control.compat.inc index 6cf55ea50cad..27e84b1d33c0 100644 --- a/scene/gui/control.compat.inc +++ b/scene/gui/control.compat.inc @@ -33,7 +33,7 @@ #include "control.h" #include "core/object/class_db.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server.h" // IWYU pragma: keep // Needed to bind DisplayServerEnums enums. bool Control::_has_focus_bind_compat_110250() const { return has_focus(false); @@ -47,8 +47,8 @@ void Control::_bind_compatibility_methods() { ClassDB::bind_compatibility_method(D_METHOD("has_focus"), &Control::_has_focus_bind_compat_110250); ClassDB::bind_compatibility_method(D_METHOD("grab_focus"), &Control::_grab_focus_bind_compat_110250); - ClassDB::bind_compatibility_method(D_METHOD("set_accessibility_live", "mode"), (void (Control::*)(DisplayServer::AccessibilityLiveMode))&Control::set_accessibility_live); - ClassDB::bind_compatibility_method(D_METHOD("get_accessibility_live"), (DisplayServer::AccessibilityLiveMode (Control::*)() const) & Control::get_accessibility_live); + ClassDB::bind_compatibility_method(D_METHOD("set_accessibility_live", "mode"), (void (Control::*)(DisplayServerEnums::AccessibilityLiveMode))&Control::set_accessibility_live); + ClassDB::bind_compatibility_method(D_METHOD("get_accessibility_live"), (DisplayServerEnums::AccessibilityLiveMode (Control::*)() const) & Control::get_accessibility_live); } #endif // DISABLE_DEPRECATED diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index 9d234853501b..2442b467ed25 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -2882,7 +2882,7 @@ void Control::_window_find_focus_neighbor(const Vector2 &p_dir, Node *p_at, cons void Control::set_default_cursor_shape(CursorShape p_shape) { ERR_MAIN_THREAD_GUARD; - ERR_FAIL_INDEX(int(p_shape), CURSOR_MAX); + ERR_FAIL_INDEX(int(p_shape), DisplayServerEnums::CURSOR_MAX); if (data.default_cursor == p_shape) { return; diff --git a/scene/gui/control.h b/scene/gui/control.h index 9e994f2813b9..47ab39f44f82 100644 --- a/scene/gui/control.h +++ b/scene/gui/control.h @@ -98,6 +98,7 @@ class Control : public CanvasItem { MOUSE_BEHAVIOR_ENABLED, }; + // Keep synced with InputClassEnums and DisplayServerEnums enums. enum CursorShape { CURSOR_ARROW, CURSOR_IBEAM, diff --git a/scene/gui/dialogs.cpp b/scene/gui/dialogs.cpp index 94ba18cbe064..13c19c6e72f8 100644 --- a/scene/gui/dialogs.cpp +++ b/scene/gui/dialogs.cpp @@ -31,6 +31,7 @@ #include "dialogs.h" #include "dialogs.compat.inc" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "scene/gui/line_edit.h" #include "scene/theme/theme_db.h" diff --git a/scene/gui/file_dialog.cpp b/scene/gui/file_dialog.cpp index c15181b096c4..db37eb18d4dd 100644 --- a/scene/gui/file_dialog.cpp +++ b/scene/gui/file_dialog.cpp @@ -48,6 +48,7 @@ #include "scene/gui/separator.h" #include "scene/gui/split_container.h" #include "scene/theme/theme_db.h" +#include "servers/display/display_server.h" void FileDialog::popup_file_dialog() { popup_centered_clamped(Vector2(1050, 700) * get_theme_default_base_scale(), 0.8f); @@ -80,20 +81,20 @@ void FileDialog::_native_popup() { while (w && w->get_flag(FLAG_POPUP) && w->get_parent_visible_window()) { w = w->get_parent_visible_window(); } - DisplayServer::WindowID wid = w ? w->get_window_id() : DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID wid = w ? w->get_window_id() : DisplayServerEnums::INVALID_WINDOW_ID; - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_NATIVE_DIALOG_FILE_EXTRA)) { - DisplayServer::get_singleton()->file_dialog_with_options_show(get_displayed_title(), ProjectSettings::get_singleton()->globalize_path(full_dir), root, filename_edit->get_text().get_file(), show_hidden_files, DisplayServer::FileDialogMode(mode), processed_filters, _get_options(), callable_mp(this, &FileDialog::_native_dialog_cb_with_options), wid); + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_EXTRA)) { + DisplayServer::get_singleton()->file_dialog_with_options_show(get_displayed_title(), ProjectSettings::get_singleton()->globalize_path(full_dir), root, filename_edit->get_text().get_file(), show_hidden_files, DisplayServerEnums::FileDialogMode(mode), processed_filters, _get_options(), callable_mp(this, &FileDialog::_native_dialog_cb_with_options), wid); } else { - DisplayServer::get_singleton()->file_dialog_show(get_displayed_title(), ProjectSettings::get_singleton()->globalize_path(full_dir), filename_edit->get_text().get_file(), show_hidden_files, DisplayServer::FileDialogMode(mode), processed_filters, callable_mp(this, &FileDialog::_native_dialog_cb), wid); + DisplayServer::get_singleton()->file_dialog_show(get_displayed_title(), ProjectSettings::get_singleton()->globalize_path(full_dir), filename_edit->get_text().get_file(), show_hidden_files, DisplayServerEnums::FileDialogMode(mode), processed_filters, callable_mp(this, &FileDialog::_native_dialog_cb), wid); } } bool FileDialog::_can_use_native_popup() const { if (access == ACCESS_RESOURCES || access == ACCESS_USERDATA || options.size() > 0) { - return DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_NATIVE_DIALOG_FILE_EXTRA); + return DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_EXTRA); } - return DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_NATIVE_DIALOG_FILE); + return DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE); } Vector2i FileDialog::_get_list_mode_icon_size() const { @@ -1165,7 +1166,7 @@ void FileDialog::update_filters() { String native_all_name; native_all_name += all_filters; - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_NATIVE_DIALOG_FILE_MIME)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_MIME)) { if (!native_all_name.is_empty()) { native_all_name += ", "; } @@ -1187,7 +1188,7 @@ void FileDialog::update_filters() { String native_name; native_name += flt; - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_NATIVE_DIALOG_FILE_MIME)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_MIME)) { if (!native_name.is_empty() && !mime.is_empty()) { native_name += ", "; } diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index efd84b86d694..b47bc4daf1e9 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -43,6 +43,7 @@ #include "scene/main/window.h" #include "scene/theme/theme_db.h" #include "servers/display/accessibility_server.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" #include "servers/text/text_server.h" @@ -97,7 +98,7 @@ void LineEdit::unedit() { apply_ime(); set_caret_column(caret_column); // Update scroll_offset. - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_VIRTUAL_KEYBOARD) && virtual_keyboard_enabled) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_VIRTUAL_KEYBOARD) && virtual_keyboard_enabled) { DisplayServer::get_singleton()->virtual_keyboard_hide(); } @@ -119,8 +120,8 @@ bool LineEdit::is_editing_kept_on_text_submit() const { } void LineEdit::_close_ime_window() { - DisplayServer::WindowID wid = get_window() ? get_window()->get_window_id() : DisplayServer::INVALID_WINDOW_ID; - if (wid == DisplayServer::INVALID_WINDOW_ID || !DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_IME)) { + DisplayServerEnums::WindowID wid = get_window() ? get_window()->get_window_id() : DisplayServerEnums::INVALID_WINDOW_ID; + if (wid == DisplayServerEnums::INVALID_WINDOW_ID || !DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_IME)) { return; } DisplayServer::get_singleton()->window_set_ime_position(Point2(), wid); @@ -128,8 +129,8 @@ void LineEdit::_close_ime_window() { } void LineEdit::_update_ime_window_position() { - DisplayServer::WindowID wid = get_window() ? get_window()->get_window_id() : DisplayServer::INVALID_WINDOW_ID; - if (wid == DisplayServer::INVALID_WINDOW_ID || !DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_IME)) { + DisplayServerEnums::WindowID wid = get_window() ? get_window()->get_window_id() : DisplayServerEnums::INVALID_WINDOW_ID; + if (wid == DisplayServerEnums::INVALID_WINDOW_ID || !DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_IME)) { return; } DisplayServer::get_singleton()->window_set_ime_active(true, wid); @@ -462,7 +463,7 @@ void LineEdit::gui_input(const Ref &p_event) { return; } - if (editable && is_middle_mouse_paste_enabled() && b->is_pressed() && b->get_button_index() == MouseButton::MIDDLE && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) { + if (editable && is_middle_mouse_paste_enabled() && b->is_pressed() && b->get_button_index() == MouseButton::MIDDLE && DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY)) { apply_ime(); String paste_buffer = DisplayServer::get_singleton()->clipboard_get_primary().strip_escapes(); @@ -532,7 +533,7 @@ void LineEdit::gui_input(const Ref &p_event) { selection.double_click = true; last_dblclk = 0; set_caret_column(selection.begin); - if (!pass && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) { + if (!pass && DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY)) { DisplayServer::get_singleton()->clipboard_set_primary(text); } queue_accessibility_update(); @@ -554,7 +555,7 @@ void LineEdit::gui_input(const Ref &p_event) { break; } } - if (!pass && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) { + if (!pass && DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY)) { DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text()); } } @@ -580,7 +581,7 @@ void LineEdit::gui_input(const Ref &p_event) { } } else { - if (selection.enabled && !pass && b->get_button_index() == MouseButton::LEFT && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) { + if (selection.enabled && !pass && b->get_button_index() == MouseButton::LEFT && DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY)) { DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text()); } if (editable && !text.is_empty() && clear_button_enabled) { @@ -925,7 +926,7 @@ void LineEdit::gui_input(const Ref &p_event) { if (editing && !keep_editing_on_text_submit) { unedit(); emit_signal(SNAME("editing_toggled"), false); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_VIRTUAL_KEYBOARD) && virtual_keyboard_enabled) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_VIRTUAL_KEYBOARD) && virtual_keyboard_enabled) { DisplayServer::get_singleton()->virtual_keyboard_hide(); } } @@ -2244,11 +2245,11 @@ void LineEdit::clear() { void LineEdit::show_virtual_keyboard() { _update_ime_window_position(); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_VIRTUAL_KEYBOARD) && virtual_keyboard_enabled) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_VIRTUAL_KEYBOARD) && virtual_keyboard_enabled) { if (selection.enabled) { - DisplayServer::get_singleton()->virtual_keyboard_show(text, get_global_rect(), DisplayServer::VirtualKeyboardType(virtual_keyboard_type), max_length, selection.begin, selection.end); + DisplayServer::get_singleton()->virtual_keyboard_show(text, get_global_rect(), DisplayServerEnums::VirtualKeyboardType(virtual_keyboard_type), max_length, selection.begin, selection.end); } else { - DisplayServer::get_singleton()->virtual_keyboard_show(text, get_global_rect(), DisplayServer::VirtualKeyboardType(virtual_keyboard_type), max_length, caret_column); + DisplayServer::get_singleton()->virtual_keyboard_show(text, get_global_rect(), DisplayServerEnums::VirtualKeyboardType(virtual_keyboard_type), max_length, caret_column); } } } @@ -3230,7 +3231,7 @@ void LineEdit::_generate_context_menu() { menu_ctl->add_item(ETR("Word Joiner (WJ)"), MENU_INSERT_WJ); menu_ctl->add_item(ETR("Soft Hyphen (SHY)"), MENU_INSERT_SHY); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EMOJI_AND_SYMBOL_PICKER)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_EMOJI_AND_SYMBOL_PICKER)) { menu->add_item(ETR("Emoji & Symbols"), MENU_EMOJI_AND_SYMBOL); menu->add_separator(); } @@ -3290,7 +3291,7 @@ void LineEdit::_update_context_menu() { m_menu->set_item_checked(idx, m_checked); \ } - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EMOJI_AND_SYMBOL_PICKER)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_EMOJI_AND_SYMBOL_PICKER)) { MENU_ITEM_DISABLED(menu, MENU_EMOJI_AND_SYMBOL, !editable || !emoji_menu_enabled) } MENU_ITEM_ACTION_DISABLED(menu, MENU_CUT, "ui_cut", !editable) @@ -3470,14 +3471,14 @@ void LineEdit::_bind_methods() { BIND_ENUM_CONSTANT(MENU_EMOJI_AND_SYMBOL); BIND_ENUM_CONSTANT(MENU_MAX); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_DEFAULT); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_MULTILINE); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_NUMBER); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_NUMBER_DECIMAL); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_PHONE); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_EMAIL_ADDRESS); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_PASSWORD); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_URL); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_DEFAULT); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_MULTILINE); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_NUMBER); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_NUMBER_DECIMAL); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_PHONE); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_EMAIL_ADDRESS); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_PASSWORD); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_URL); BIND_ENUM_CONSTANT(EXPAND_MODE_ORIGINAL_SIZE); BIND_ENUM_CONSTANT(EXPAND_MODE_FIT_TO_TEXT); diff --git a/scene/gui/line_edit.h b/scene/gui/line_edit.h index bd3d81b318e2..a4749b4c110d 100644 --- a/scene/gui/line_edit.h +++ b/scene/gui/line_edit.h @@ -72,6 +72,7 @@ class LineEdit : public Control { MENU_MAX }; + // Keep synced with DisplayServerEnums::VirtualKeyboardType enum. enum VirtualKeyboardType { KEYBOARD_TYPE_DEFAULT, KEYBOARD_TYPE_MULTILINE, diff --git a/scene/gui/link_button.cpp b/scene/gui/link_button.cpp index 20c2add7a3ec..77ccded0e57e 100644 --- a/scene/gui/link_button.cpp +++ b/scene/gui/link_button.cpp @@ -31,6 +31,7 @@ #include "link_button.h" #include "core/object/class_db.h" +#include "core/os/os.h" #include "scene/theme/theme_db.h" #include "servers/display/accessibility_server.h" diff --git a/scene/gui/menu_button.cpp b/scene/gui/menu_button.cpp index dd31bebe995e..11958beff3de 100644 --- a/scene/gui/menu_button.cpp +++ b/scene/gui/menu_button.cpp @@ -33,6 +33,7 @@ #include "core/object/class_db.h" #include "scene/main/window.h" #include "servers/display/accessibility_server.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" void MenuButton::shortcut_input(const Ref &p_event) { diff --git a/scene/gui/popup.cpp b/scene/gui/popup.cpp index caba670394dc..95a03f4ca851 100644 --- a/scene/gui/popup.cpp +++ b/scene/gui/popup.cpp @@ -30,14 +30,16 @@ #include "popup.h" -#ifdef TOOLS_ENABLED -#include "core/config/project_settings.h" -#endif - +#include "core/config/engine.h" #include "core/object/class_db.h" #include "scene/gui/panel.h" #include "scene/resources/style_box_flat.h" #include "scene/theme/theme_db.h" +#include "servers/display/display_server.h" + +#ifdef TOOLS_ENABLED +#include "core/config/project_settings.h" +#endif void Popup::_input_from_window(const Ref &p_event) { if (get_flag(FLAG_POPUP) && p_event->is_action_pressed(SNAME("ui_cancel"), false, true)) { @@ -165,7 +167,7 @@ Rect2i Popup::_popup_adjust_rect() const { Rect2i current(get_position(), get_size()); - if (!is_embedded() && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SELF_FITTING_WINDOWS)) { + if (!is_embedded() && DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SELF_FITTING_WINDOWS)) { // We're fine as is, the Display Server will take care of that for us. return current; } diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp index 8b8afa1fa80b..215291426c18 100644 --- a/scene/gui/popup_menu.cpp +++ b/scene/gui/popup_menu.cpp @@ -43,6 +43,7 @@ #include "scene/resources/style_box_flat.h" #include "scene/theme/theme_db.h" #include "servers/display/accessibility_server.h" +#include "servers/display/display_server.h" HashMap PopupMenu::system_menus; @@ -3368,9 +3369,9 @@ void PopupMenu::_native_popup(const Rect2i &p_rect) { Point2i popup_pos = p_rect.position; if (is_embedded()) { popup_pos = get_embedder()->get_screen_transform().xform(popup_pos); // Note: for embedded windows "screen transform" is transform relative to embedder not the actual screen. - DisplayServer::WindowID wid = get_window_id(); - if (wid == DisplayServer::INVALID_WINDOW_ID) { - wid = DisplayServer::MAIN_WINDOW_ID; + DisplayServerEnums::WindowID wid = get_window_id(); + if (wid == DisplayServerEnums::INVALID_WINDOW_ID) { + wid = DisplayServerEnums::MAIN_WINDOW_ID; } popup_pos += DisplayServer::get_singleton()->window_get_position(wid); } diff --git a/scene/gui/progress_bar.cpp b/scene/gui/progress_bar.cpp index 3c948983662a..d271f0a93151 100644 --- a/scene/gui/progress_bar.cpp +++ b/scene/gui/progress_bar.cpp @@ -30,6 +30,7 @@ #include "progress_bar.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "core/string/translation_server.h" #include "scene/resources/text_line.h" diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index d8248ac50f7f..70b325841bbf 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -44,6 +44,7 @@ #include "scene/resources/atlas_texture.h" #include "scene/theme/theme_db.h" #include "servers/display/accessibility_server.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" #include "modules/modules_enabled.gen.h" // For regex. @@ -2889,7 +2890,7 @@ void RichTextLabel::gui_input(const Ref &p_event) { selection.to_char = words[i + 1]; selection.active = true; - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY)) { DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text()); } queue_accessibility_update(); @@ -2906,7 +2907,7 @@ void RichTextLabel::gui_input(const Ref &p_event) { selection.double_click = true; } } else if (!b->is_pressed()) { - if (selection.enabled && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) { + if (selection.enabled && DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY)) { DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text()); } selection.click_item = nullptr; diff --git a/scene/gui/scroll_bar.cpp b/scene/gui/scroll_bar.cpp index 9a33ed1fcf81..90631986da1e 100644 --- a/scene/gui/scroll_bar.cpp +++ b/scene/gui/scroll_bar.cpp @@ -34,6 +34,7 @@ #include "scene/main/window.h" #include "scene/theme/theme_db.h" #include "servers/display/accessibility_server.h" +#include "servers/display/display_server.h" bool ScrollBar::focus_by_default = false; diff --git a/scene/gui/scroll_container.cpp b/scene/gui/scroll_container.cpp index 506c667b48a7..41eaf65cdd31 100644 --- a/scene/gui/scroll_container.cpp +++ b/scene/gui/scroll_container.cpp @@ -37,6 +37,7 @@ #include "scene/main/window.h" #include "scene/theme/theme_db.h" #include "servers/display/accessibility_server.h" +#include "servers/display/display_server.h" Size2 ScrollContainer::get_minimum_size() const { // Calculated in this function, as it needs to traverse all child controls once to calculate; diff --git a/scene/gui/slider.cpp b/scene/gui/slider.cpp index ae8e4cbbda80..35a41536c21a 100644 --- a/scene/gui/slider.cpp +++ b/scene/gui/slider.cpp @@ -30,6 +30,7 @@ #include "slider.h" +#include "core/config/engine.h" #include "core/input/input.h" #include "core/object/class_db.h" #include "scene/theme/theme_db.h" diff --git a/scene/gui/split_container.cpp b/scene/gui/split_container.cpp index 68dd44cf6d5b..87303d567d78 100644 --- a/scene/gui/split_container.cpp +++ b/scene/gui/split_container.cpp @@ -31,6 +31,7 @@ #include "split_container.h" #include "split_container.compat.inc" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "scene/gui/texture_rect.h" #include "scene/main/viewport.h" diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 359c39a825e8..3c6f984f4413 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -44,6 +44,7 @@ #include "scene/main/window.h" #include "scene/theme/theme_db.h" #include "servers/display/accessibility_server.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_enums.h" @@ -1963,7 +1964,7 @@ void TextEdit::_notification(int p_what) { apply_ime(); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_VIRTUAL_KEYBOARD) && virtual_keyboard_enabled) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_VIRTUAL_KEYBOARD) && virtual_keyboard_enabled) { DisplayServer::get_singleton()->virtual_keyboard_hide(); } @@ -2429,7 +2430,7 @@ void TextEdit::gui_input(const Ref &p_gui_input) { queue_redraw(); } - if (is_middle_mouse_paste_enabled() && mb->get_button_index() == MouseButton::MIDDLE && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) { + if (is_middle_mouse_paste_enabled() && mb->get_button_index() == MouseButton::MIDDLE && DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY)) { apply_ime(); paste_primary_clipboard(); } @@ -2485,7 +2486,7 @@ void TextEdit::gui_input(const Ref &p_gui_input) { can_drag_minimap = false; set_selection_mode(SelectionMode::SELECTION_MODE_NONE); click_select_held->stop(); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY)) { DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text()); } } @@ -3422,8 +3423,8 @@ void TextEdit::_update_caches(bool p_invalidate_all) { } void TextEdit::_close_ime_window() { - DisplayServer::WindowID wid = get_window() ? get_window()->get_window_id() : DisplayServer::INVALID_WINDOW_ID; - if (wid == DisplayServer::INVALID_WINDOW_ID || !DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_IME)) { + DisplayServerEnums::WindowID wid = get_window() ? get_window()->get_window_id() : DisplayServerEnums::INVALID_WINDOW_ID; + if (wid == DisplayServerEnums::INVALID_WINDOW_ID || !DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_IME)) { return; } DisplayServer::get_singleton()->window_set_ime_position(Point2(), wid); @@ -3431,8 +3432,8 @@ void TextEdit::_close_ime_window() { } void TextEdit::_update_ime_window_position() { - DisplayServer::WindowID wid = get_window() ? get_window()->get_window_id() : DisplayServer::INVALID_WINDOW_ID; - if (wid == DisplayServer::INVALID_WINDOW_ID || !DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_IME)) { + DisplayServerEnums::WindowID wid = get_window() ? get_window()->get_window_id() : DisplayServerEnums::INVALID_WINDOW_ID; + if (wid == DisplayServerEnums::INVALID_WINDOW_ID || !DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_IME)) { return; } DisplayServer::get_singleton()->window_set_ime_active(true, wid); @@ -3471,7 +3472,7 @@ void TextEdit::_update_ime_text() { void TextEdit::_show_virtual_keyboard() { _update_ime_window_position(); - if (virtual_keyboard_enabled && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_VIRTUAL_KEYBOARD)) { + if (virtual_keyboard_enabled && DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_VIRTUAL_KEYBOARD)) { int caret_start = -1; int caret_end = -1; @@ -3487,7 +3488,7 @@ void TextEdit::_show_virtual_keyboard() { caret_end = caret_start + post_text.length(); } - DisplayServer::get_singleton()->virtual_keyboard_show(get_text(), get_global_rect(), DisplayServer::KEYBOARD_TYPE_MULTILINE, -1, caret_start, caret_end); + DisplayServer::get_singleton()->virtual_keyboard_show(get_text(), get_global_rect(), DisplayServerEnums::KEYBOARD_TYPE_MULTILINE, -1, caret_start, caret_end); } } @@ -7960,7 +7961,7 @@ void TextEdit::_paste_internal(int p_caret) { void TextEdit::_paste_primary_clipboard_internal(int p_caret) { ERR_FAIL_COND(p_caret >= get_caret_count() || p_caret < -1); - if (!is_editable() || !DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) { + if (!is_editable() || !DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY)) { return; } @@ -8037,7 +8038,7 @@ void TextEdit::_generate_context_menu() { menu_ctl->add_item(ETR("Word Joiner (WJ)"), MENU_INSERT_WJ); menu_ctl->add_item(ETR("Soft Hyphen (SHY)"), MENU_INSERT_SHY); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EMOJI_AND_SYMBOL_PICKER)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_EMOJI_AND_SYMBOL_PICKER)) { menu->add_item(ETR("Emoji & Symbols"), MENU_EMOJI_AND_SYMBOL); menu->add_separator(); } @@ -8094,7 +8095,7 @@ void TextEdit::_update_context_menu() { m_menu->set_item_checked(idx, m_checked); \ } - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_EMOJI_AND_SYMBOL_PICKER)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_EMOJI_AND_SYMBOL_PICKER)) { MENU_ITEM_DISABLED(menu, MENU_EMOJI_AND_SYMBOL, !editable || !emoji_menu_enabled) } MENU_ITEM_ACTION_DISABLED(menu, MENU_CUT, "ui_cut", !editable) @@ -8484,7 +8485,7 @@ void TextEdit::_update_selection_mode_word(bool p_initial) { } adjust_viewport_to_caret(caret_index); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY)) { DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text()); } @@ -8514,7 +8515,7 @@ void TextEdit::_update_selection_mode_line(bool p_initial) { carets.write[caret_index].selection.word_end_column = get_line(origin_line).length(); } - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CLIPBOARD_PRIMARY)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY)) { DisplayServer::get_singleton()->clipboard_set_primary(get_selected_text()); } diff --git a/scene/gui/texture_progress_bar.cpp b/scene/gui/texture_progress_bar.cpp index a4307da388c8..b345f0bab593 100644 --- a/scene/gui/texture_progress_bar.cpp +++ b/scene/gui/texture_progress_bar.cpp @@ -30,6 +30,7 @@ #include "texture_progress_bar.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "servers/display/accessibility_server.h" #include "servers/rendering/rendering_server.h" diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index 68ff24ad8689..cd8ca7c53407 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -46,6 +46,7 @@ #include "scene/main/timer.h" #include "scene/main/window.h" #include "scene/theme/theme_db.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" #include diff --git a/scene/main/node.cpp b/scene/main/node.cpp index c35345c97a85..20c987a7f32c 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -3721,7 +3721,7 @@ RID Node::get_accessibility_element() const { } if (unlikely(data.accessibility_element.is_null())) { Window *w = get_non_popup_window(); - if (w && w->get_window_id() != DisplayServer::INVALID_WINDOW_ID && get_window()->is_visible()) { + if (w && w->get_window_id() != DisplayServerEnums::INVALID_WINDOW_ID && get_window()->is_visible()) { data.accessibility_element = AccessibilityServer::get_singleton()->create_element(w->get_window_id(), AccessibilityServerEnums::ROLE_CONTAINER); } } diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp index 8f5e40c2443b..77b2f883563e 100644 --- a/scene/main/scene_tree.cpp +++ b/scene/main/scene_tree.cpp @@ -55,6 +55,7 @@ STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer); #include "scene/resources/packed_scene.h" #include "scene/resources/world_2d.h" #include "servers/display/accessibility_server.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" #ifndef _3D_DISABLED @@ -209,7 +210,7 @@ void SceneTree::flush_transform_notifications() { } bool SceneTree::is_accessibility_enabled() const { - if (!DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_ACCESSIBILITY_SCREEN_READER)) { + if (!DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_ACCESSIBILITY_SCREEN_READER)) { return false; } @@ -222,7 +223,7 @@ bool SceneTree::is_accessibility_enabled() const { } bool SceneTree::is_accessibility_supported() const { - if (!DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_ACCESSIBILITY_SCREEN_READER)) { + if (!DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_ACCESSIBILITY_SCREEN_READER)) { return false; } @@ -247,7 +248,7 @@ void SceneTree::_accessibility_notify_change(const Node *p_node, bool p_remove) } } -void SceneTree::_process_accessibility_changes(DisplayServer::WindowID p_window_id) { +void SceneTree::_process_accessibility_changes(DisplayServerEnums::WindowID p_window_id) { // Process NOTIFICATION_ACCESSIBILITY_UPDATE. Vector processed; for (const ObjectID &id : accessibility_change_queue) { @@ -274,8 +275,8 @@ void SceneTree::_process_accessibility_changes(DisplayServer::WindowID p_window_ } // Popups have no native window focus, but have focused element. - DisplayServer::WindowID popup_id = DisplayServer::get_singleton()->window_get_active_popup(); - if (popup_id != DisplayServer::INVALID_WINDOW_ID) { + DisplayServerEnums::WindowID popup_id = DisplayServer::get_singleton()->window_get_active_popup(); + if (popup_id != DisplayServerEnums::INVALID_WINDOW_ID) { Window *popup_w = Window::get_from_id(popup_id); if (popup_w && w_this->is_ancestor_of(popup_w)) { w_this = popup_w; diff --git a/scene/main/scene_tree.h b/scene/main/scene_tree.h index f4dac9c04f20..2887960142a7 100644 --- a/scene/main/scene_tree.h +++ b/scene/main/scene_tree.h @@ -338,7 +338,7 @@ class SceneTree : public MainLoop { void _accessibility_force_update(); void _accessibility_notify_change(const Node *p_node, bool p_remove = false); void _flush_accessibility_changes(); - void _process_accessibility_changes(int p_window_id); // Effectively DisplayServer::WindowID + void _process_accessibility_changes(int p_window_id); // Effectively DisplayServerEnums::WindowID virtual void initialize() override; diff --git a/scene/main/status_indicator.cpp b/scene/main/status_indicator.cpp index 1194952a39ad..7c13e71ecaa2 100644 --- a/scene/main/status_indicator.cpp +++ b/scene/main/status_indicator.cpp @@ -32,6 +32,7 @@ #include "core/object/class_db.h" #include "scene/gui/popup_menu.h" +#include "servers/display/display_server.h" void StatusIndicator::_notification(int p_what) { ERR_MAIN_THREAD_GUARD; @@ -43,8 +44,8 @@ void StatusIndicator::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_STATUS_INDICATOR)) { - if (visible && iid == DisplayServer::INVALID_INDICATOR_ID) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_STATUS_INDICATOR)) { + if (visible && iid == DisplayServerEnums::INVALID_INDICATOR_ID) { iid = DisplayServer::get_singleton()->create_status_indicator(icon, tooltip, callable_mp(this, &StatusIndicator::_callback)); PopupMenu *pm = Object::cast_to(get_node_or_null(menu)); if (pm) { @@ -55,15 +56,15 @@ void StatusIndicator::_notification(int p_what) { } } break; case NOTIFICATION_EXIT_TREE: { - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_STATUS_INDICATOR)) { - if (iid != DisplayServer::INVALID_INDICATOR_ID) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_STATUS_INDICATOR)) { + if (iid != DisplayServerEnums::INVALID_INDICATOR_ID) { PopupMenu *pm = Object::cast_to(get_node_or_null(menu)); if (pm) { pm->unbind_global_menu(); DisplayServer::get_singleton()->status_indicator_set_menu(iid, RID()); } DisplayServer::get_singleton()->delete_status_indicator(iid); - iid = DisplayServer::INVALID_INDICATOR_ID; + iid = DisplayServerEnums::INVALID_INDICATOR_ID; } } } break; @@ -98,7 +99,7 @@ void StatusIndicator::_callback(MouseButton p_index, const Point2i &p_pos) { void StatusIndicator::set_icon(const Ref &p_icon) { ERR_MAIN_THREAD_GUARD; icon = p_icon; - if (iid != DisplayServer::INVALID_INDICATOR_ID) { + if (iid != DisplayServerEnums::INVALID_INDICATOR_ID) { DisplayServer::get_singleton()->status_indicator_set_icon(iid, icon); } } @@ -110,7 +111,7 @@ Ref StatusIndicator::get_icon() const { void StatusIndicator::set_tooltip(const String &p_tooltip) { ERR_MAIN_THREAD_GUARD; tooltip = p_tooltip; - if (iid != DisplayServer::INVALID_INDICATOR_ID) { + if (iid != DisplayServerEnums::INVALID_INDICATOR_ID) { DisplayServer::get_singleton()->status_indicator_set_tooltip(iid, tooltip); } } @@ -123,7 +124,7 @@ void StatusIndicator::set_menu(const NodePath &p_menu) { PopupMenu *pm = Object::cast_to(get_node_or_null(menu)); if (pm) { pm->unbind_global_menu(); - if (iid != DisplayServer::INVALID_INDICATOR_ID) { + if (iid != DisplayServerEnums::INVALID_INDICATOR_ID) { DisplayServer::get_singleton()->status_indicator_set_menu(iid, RID()); } } @@ -132,7 +133,7 @@ void StatusIndicator::set_menu(const NodePath &p_menu) { pm = Object::cast_to(get_node_or_null(menu)); if (pm) { - if (iid != DisplayServer::INVALID_INDICATOR_ID) { + if (iid != DisplayServerEnums::INVALID_INDICATOR_ID) { RID menu_rid = pm->bind_global_menu(); DisplayServer::get_singleton()->status_indicator_set_menu(iid, menu_rid); } @@ -160,8 +161,8 @@ void StatusIndicator::set_visible(bool p_visible) { } #endif - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_STATUS_INDICATOR)) { - if (visible && iid == DisplayServer::INVALID_INDICATOR_ID) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_STATUS_INDICATOR)) { + if (visible && iid == DisplayServerEnums::INVALID_INDICATOR_ID) { iid = DisplayServer::get_singleton()->create_status_indicator(icon, tooltip, callable_mp(this, &StatusIndicator::_callback)); PopupMenu *pm = Object::cast_to(get_node_or_null(menu)); if (pm) { @@ -169,14 +170,14 @@ void StatusIndicator::set_visible(bool p_visible) { DisplayServer::get_singleton()->status_indicator_set_menu(iid, menu_rid); } } - if (!visible && iid != DisplayServer::INVALID_INDICATOR_ID) { + if (!visible && iid != DisplayServerEnums::INVALID_INDICATOR_ID) { PopupMenu *pm = Object::cast_to(get_node_or_null(menu)); if (pm) { pm->unbind_global_menu(); DisplayServer::get_singleton()->status_indicator_set_menu(iid, RID()); } DisplayServer::get_singleton()->delete_status_indicator(iid); - iid = DisplayServer::INVALID_INDICATOR_ID; + iid = DisplayServerEnums::INVALID_INDICATOR_ID; } } } @@ -186,7 +187,7 @@ bool StatusIndicator::is_visible() const { } Rect2 StatusIndicator::get_rect() const { - if (iid == DisplayServer::INVALID_INDICATOR_ID) { + if (iid == DisplayServerEnums::INVALID_INDICATOR_ID) { return Rect2(); } return DisplayServer::get_singleton()->status_indicator_get_rect(iid); diff --git a/scene/main/status_indicator.h b/scene/main/status_indicator.h index bffb39971214..6df06657a640 100644 --- a/scene/main/status_indicator.h +++ b/scene/main/status_indicator.h @@ -31,7 +31,8 @@ #pragma once #include "scene/main/node.h" -#include "servers/display/display_server.h" +#include "scene/resources/texture.h" +#include "servers/display/display_server_enums.h" class StatusIndicator : public Node { GDCLASS(StatusIndicator, Node); @@ -39,7 +40,7 @@ class StatusIndicator : public Node { Ref icon; String tooltip; bool visible = true; - DisplayServer::IndicatorID iid = DisplayServer::INVALID_INDICATOR_ID; + DisplayServerEnums::IndicatorID iid = DisplayServerEnums::INVALID_INDICATOR_ID; NodePath menu; protected: diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index 5b7f3f9d1857..b9d371e2a93d 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -50,6 +50,7 @@ STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer); #include "scene/resources/mesh.h" #include "scene/resources/text_line.h" #include "servers/audio/audio_server.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_enums.h" #include "servers/rendering/rendering_server_globals.h" @@ -419,14 +420,14 @@ void Viewport::_sub_window_grab_focus(Window *p_window) { if (p_window == nullptr) { // Release current focus. if (gui.subwindow_focused) { - gui.subwindow_focused->_event_callback(DisplayServer::WINDOW_EVENT_FOCUS_OUT); + gui.subwindow_focused->_event_callback(DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT); gui.subwindow_focused = nullptr; gui.subwindow_drag = SUB_WINDOW_DRAG_DISABLED; } Window *this_window = Object::cast_to(this); if (this_window) { - this_window->_event_callback(DisplayServer::WINDOW_EVENT_FOCUS_IN); + this_window->_event_callback(DisplayServerEnums::WINDOW_EVENT_FOCUS_IN); } return; @@ -439,7 +440,7 @@ void Viewport::_sub_window_grab_focus(Window *p_window) { if (p_window->get_flag(Window::FLAG_NO_FOCUS)) { // Release current focus. if (gui.subwindow_focused) { - gui.subwindow_focused->_event_callback(DisplayServer::WINDOW_EVENT_FOCUS_OUT); + gui.subwindow_focused->_event_callback(DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT); gui.subwindow_focused = nullptr; gui.subwindow_drag = SUB_WINDOW_DRAG_DISABLED; } @@ -457,12 +458,12 @@ void Viewport::_sub_window_grab_focus(Window *p_window) { if (gui.subwindow_focused == p_window) { return; // Nothing to do. } - gui.subwindow_focused->_event_callback(DisplayServer::WINDOW_EVENT_FOCUS_OUT); + gui.subwindow_focused->_event_callback(DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT); gui.subwindow_drag = SUB_WINDOW_DRAG_DISABLED; } else { Window *this_window = Object::cast_to(this); if (this_window) { - this_window->_event_callback(DisplayServer::WINDOW_EVENT_FOCUS_OUT); + this_window->_event_callback(DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT); } } @@ -470,7 +471,7 @@ void Viewport::_sub_window_grab_focus(Window *p_window) { gui.subwindow_focused = p_window; - gui.subwindow_focused->_event_callback(DisplayServer::WINDOW_EVENT_FOCUS_IN); + gui.subwindow_focused->_event_callback(DisplayServerEnums::WINDOW_EVENT_FOCUS_IN); { // Move to foreground. index = _sub_window_find(p_window); @@ -517,7 +518,7 @@ void Viewport::_sub_window_remove(Window *p_window) { Window *new_focused_window; Window *parent_visible = p_window->get_parent_visible_window(); - gui.subwindow_focused->_event_callback(DisplayServer::WINDOW_EVENT_FOCUS_OUT); + gui.subwindow_focused->_event_callback(DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT); if (parent_visible) { new_focused_window = parent_visible; @@ -533,7 +534,7 @@ void Viewport::_sub_window_remove(Window *p_window) { gui.subwindow_focused = nullptr; } - new_focused_window->_event_callback(DisplayServer::WINDOW_EVENT_FOCUS_IN); + new_focused_window->_event_callback(DisplayServerEnums::WINDOW_EVENT_FOCUS_IN); } else { gui.subwindow_focused = nullptr; } @@ -1478,7 +1479,7 @@ Vector2 Viewport::get_mouse_position() const { // Rely on the most recent mouse coordinate from an InputEventMouse in push_input. // In this case get_screen_transform is not applicable, because it is ambiguous. return gui.last_mouse_pos; - } else if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_MOUSE)) { + } else if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_MOUSE)) { Transform2D xform = get_screen_transform_internal(true); if (xform.determinant() == 0) { // Screen transform can be non-invertible when the Window is minimized. @@ -1709,7 +1710,7 @@ void Viewport::_gui_show_tooltip_at(const Point2i &p_pos) { r.size = r.size.ceil(); r.size = r.size.min(panel->get_max_size()); - if (!DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SELF_FITTING_WINDOWS) || gui.tooltip_popup->is_embedded()) { + if (!DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SELF_FITTING_WINDOWS) || gui.tooltip_popup->is_embedded()) { if (r.size.x + r.position.x > vr.size.x + vr.position.x) { // Place it in the opposite direction. If it fails, just hug the border. r.position.x = gui.tooltip_pos.x - r.size.x - tooltip_offset.x; @@ -1733,8 +1734,8 @@ void Viewport::_gui_show_tooltip_at(const Point2i &p_pos) { } } - DisplayServer::WindowID active_popup = DisplayServer::get_singleton()->window_get_active_popup(); - if (active_popup == DisplayServer::INVALID_WINDOW_ID || active_popup == window->get_window_id()) { + DisplayServerEnums::WindowID active_popup = DisplayServer::get_singleton()->window_get_active_popup(); + if (active_popup == DisplayServerEnums::INVALID_WINDOW_ID || active_popup == window->get_window_id()) { gui.tooltip_popup->popup(r); } gui.tooltip_popup->child_controls_changed(); @@ -2102,7 +2103,7 @@ void Viewport::_gui_input_event(Ref p_event) { over = gui_find_control(mpos); } - DisplayServer::CursorShape ds_cursor_shape = (DisplayServer::CursorShape)Input::get_singleton()->get_default_cursor_shape(); + DisplayServerEnums::CursorShape ds_cursor_shape = (DisplayServerEnums::CursorShape)Input::get_singleton()->get_default_cursor_shape(); if (over) { Transform2D localizer = over->get_global_transform_with_canvas().affine_inverse(); @@ -2177,7 +2178,7 @@ void Viewport::_gui_input_event(Ref p_event) { } } - ds_cursor_shape = (DisplayServer::CursorShape)cursor_shape; + ds_cursor_shape = (DisplayServerEnums::CursorShape)cursor_shape; if (over->can_process()) { _gui_call_input(over, mm); @@ -2199,14 +2200,14 @@ void Viewport::_gui_input_event(Ref p_event) { gui.drag_mouse_over = nullptr; } if (gui.drag_mouse_over) { - ds_cursor_shape = DisplayServer::CURSOR_CAN_DROP; + ds_cursor_shape = DisplayServerEnums::CURSOR_CAN_DROP; } else { - ds_cursor_shape = DisplayServer::CURSOR_FORBIDDEN; + ds_cursor_shape = DisplayServerEnums::CURSOR_FORBIDDEN; } } } - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CURSOR_SHAPE) && (gui.dragging || (!section_root->gui.global_dragging && !Object::cast_to(over)))) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CURSOR_SHAPE) && (gui.dragging || (!section_root->gui.global_dragging && !Object::cast_to(over)))) { // If dragging is active, then set the cursor shape only from the Viewport where dragging started. // If dragging is inactive, then set the cursor shape only when not over a SubViewportContainer. DisplayServer::get_singleton()->cursor_set_shape(ds_cursor_shape); @@ -2947,7 +2948,7 @@ bool Viewport::_sub_windows_forward_input(const Ref &p_event) { if (gui.subwindow_drag == SUB_WINDOW_DRAG_CLOSE) { if (gui.subwindow_drag_close_rect.has_point(mb->get_position())) { // Close window. - gui.currently_dragged_subwindow->_event_callback(DisplayServer::WINDOW_EVENT_CLOSE_REQUEST); + gui.currently_dragged_subwindow->_event_callback(DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); } } gui.subwindow_drag = SUB_WINDOW_DRAG_DISABLED; @@ -2969,8 +2970,8 @@ bool Viewport::_sub_windows_forward_input(const Ref &p_event) { gui.currently_dragged_subwindow->_rect_changed_callback(new_rect); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CURSOR_SHAPE)) { - DisplayServer::get_singleton()->cursor_set_shape(DisplayServer::CURSOR_MOVE); + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CURSOR_SHAPE)) { + DisplayServer::get_singleton()->cursor_set_shape(DisplayServerEnums::CURSOR_MOVE); } } if (gui.subwindow_drag == SUB_WINDOW_DRAG_CLOSE) { @@ -3153,19 +3154,19 @@ bool Viewport::_sub_windows_forward_input(const Ref &p_event) { if (mm.is_valid()) { SubWindowResize resize = _sub_window_get_resize_margin(gui.subwindow_focused, mm->get_position()); if (resize != SUB_WINDOW_RESIZE_DISABLED) { - DisplayServer::CursorShape shapes[SUB_WINDOW_RESIZE_MAX] = { - DisplayServer::CURSOR_ARROW, - DisplayServer::CURSOR_FDIAGSIZE, - DisplayServer::CURSOR_VSIZE, - DisplayServer::CURSOR_BDIAGSIZE, - DisplayServer::CURSOR_HSIZE, - DisplayServer::CURSOR_HSIZE, - DisplayServer::CURSOR_BDIAGSIZE, - DisplayServer::CURSOR_VSIZE, - DisplayServer::CURSOR_FDIAGSIZE + DisplayServerEnums::CursorShape shapes[SUB_WINDOW_RESIZE_MAX] = { + DisplayServerEnums::CURSOR_ARROW, + DisplayServerEnums::CURSOR_FDIAGSIZE, + DisplayServerEnums::CURSOR_VSIZE, + DisplayServerEnums::CURSOR_BDIAGSIZE, + DisplayServerEnums::CURSOR_HSIZE, + DisplayServerEnums::CURSOR_HSIZE, + DisplayServerEnums::CURSOR_BDIAGSIZE, + DisplayServerEnums::CURSOR_VSIZE, + DisplayServerEnums::CURSOR_FDIAGSIZE }; - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CURSOR_SHAPE)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CURSOR_SHAPE)) { DisplayServer::get_singleton()->cursor_set_shape(shapes[resize]); } @@ -4113,9 +4114,9 @@ Ref Viewport::get_vrs_texture() const { return vrs_texture; } -DisplayServer::WindowID Viewport::get_window_id() const { - ERR_READ_THREAD_GUARD_V(DisplayServer::INVALID_WINDOW_ID); - return DisplayServer::MAIN_WINDOW_ID; +DisplayServerEnums::WindowID Viewport::get_window_id() const { + ERR_READ_THREAD_GUARD_V(DisplayServerEnums::INVALID_WINDOW_ID); + return DisplayServerEnums::MAIN_WINDOW_ID; } Viewport *Viewport::get_parent_viewport() const { @@ -4163,8 +4164,8 @@ void Viewport::set_embedding_subwindows(bool p_embed) { } if (allow_change) { - Vector wl = DisplayServer::get_singleton()->get_window_list(); - for (const DisplayServer::WindowID &window_id : wl) { + Vector wl = DisplayServer::get_singleton()->get_window_list(); + for (const DisplayServerEnums::WindowID &window_id : wl) { const Window *w = Window::get_from_id(window_id); if (w && is_ancestor_of(w)) { // Prevent change when this viewport has child windows that are displayed as native windows. @@ -5543,9 +5544,9 @@ SubViewport::ClearMode SubViewport::get_clear_mode() const { return clear_mode; } -DisplayServer::WindowID SubViewport::get_window_id() const { - ERR_READ_THREAD_GUARD_V(DisplayServer::INVALID_WINDOW_ID); - return DisplayServer::INVALID_WINDOW_ID; +DisplayServerEnums::WindowID SubViewport::get_window_id() const { + ERR_READ_THREAD_GUARD_V(DisplayServerEnums::INVALID_WINDOW_ID); + return DisplayServerEnums::INVALID_WINDOW_ID; } Transform2D SubViewport::get_screen_transform_internal(bool p_absolute_position) const { diff --git a/scene/main/viewport.h b/scene/main/viewport.h index ba5eba7ea7bd..6e12b622c656 100644 --- a/scene/main/viewport.h +++ b/scene/main/viewport.h @@ -32,7 +32,7 @@ #include "scene/main/node.h" #include "scene/resources/texture.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" class AudioListener2D; class Camera2D; @@ -706,7 +706,7 @@ class Viewport : public Node { void set_vrs_texture(Ref p_texture); Ref get_vrs_texture() const; - virtual DisplayServer::WindowID get_window_id() const = 0; + virtual DisplayServerEnums::WindowID get_window_id() const = 0; void set_embedding_subwindows(bool p_embed); bool is_embedding_subwindows() const; @@ -901,7 +901,7 @@ class SubViewport : public Viewport { protected: static void _bind_methods(); - virtual DisplayServer::WindowID get_window_id() const override; + virtual DisplayServerEnums::WindowID get_window_id() const override; void _notification(int p_what); public: diff --git a/scene/main/window.cpp b/scene/main/window.cpp index 6688c01a083f..f2971ecea507 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -40,6 +40,7 @@ STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer); #include "scene/theme/theme_db.h" #include "scene/theme/theme_owner.h" #include "servers/display/accessibility_server.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_enums.h" @@ -299,8 +300,8 @@ void Window::_validate_property(PropertyInfo &p_property) const { // -Window *Window::get_from_id(DisplayServer::WindowID p_window_id) { - if (p_window_id == DisplayServer::INVALID_WINDOW_ID) { +Window *Window::get_from_id(DisplayServerEnums::WindowID p_window_id) { + if (p_window_id == DisplayServerEnums::INVALID_WINDOW_ID) { return nullptr; } return ObjectDB::get_instance(DisplayServer::get_singleton()->window_get_attached_instance_id(p_window_id)); @@ -352,7 +353,7 @@ void Window::set_current_screen(int p_screen) { ERR_MAIN_THREAD_GUARD; current_screen = p_screen; - if (window_id == DisplayServer::INVALID_WINDOW_ID) { + if (window_id == DisplayServerEnums::INVALID_WINDOW_ID) { return; } DisplayServer::get_singleton()->window_set_current_screen(p_screen, window_id); @@ -361,7 +362,7 @@ void Window::set_current_screen(int p_screen) { int Window::get_current_screen() const { ERR_READ_THREAD_GUARD_V(0); - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { current_screen = DisplayServer::get_singleton()->window_get_current_screen(window_id); } return current_screen; @@ -375,7 +376,7 @@ void Window::set_position(const Point2i &p_position) { if (embedder) { embedder->_sub_window_update(this); - } else if (window_id != DisplayServer::INVALID_WINDOW_ID) { + } else if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_set_position(p_position, window_id); } } @@ -431,7 +432,7 @@ void Window::reset_size() { Point2i Window::get_position_with_decorations() const { ERR_READ_THREAD_GUARD_V(Point2i()); - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { return DisplayServer::get_singleton()->window_get_position_with_decorations(window_id); } if (visible && is_embedded() && !get_flag(Window::FLAG_BORDERLESS)) { @@ -449,7 +450,7 @@ Point2i Window::get_position_with_decorations() const { Size2i Window::get_size_with_decorations() const { ERR_READ_THREAD_GUARD_V(Size2i()); - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { return DisplayServer::get_singleton()->window_get_size_with_decorations(window_id); } if (visible && is_embedded() && !get_flag(Window::FLAG_BORDERLESS)) { @@ -534,14 +535,14 @@ void Window::set_mode(Mode p_mode) { if (embedder) { embedder->_sub_window_update(this); - } else if (window_id != DisplayServer::INVALID_WINDOW_ID) { - DisplayServer::get_singleton()->window_set_mode(DisplayServer::WindowMode(p_mode), window_id); + } else if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { + DisplayServer::get_singleton()->window_set_mode(DisplayServerEnums::WindowMode(p_mode), window_id); } } Window::Mode Window::get_mode() const { ERR_READ_THREAD_GUARD_V(MODE_WINDOWED); - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { mode = (Mode)DisplayServer::get_singleton()->window_get_mode(window_id); } return mode; @@ -558,9 +559,9 @@ void Window::set_flag(Flags p_flag, bool p_enabled) { if (embedder) { embedder->_sub_window_update(this); - } else if (window_id != DisplayServer::INVALID_WINDOW_ID) { + } else if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { if (!is_in_edited_scene_root()) { - DisplayServer::get_singleton()->window_set_flag(DisplayServer::WindowFlags(p_flag), p_enabled, window_id); + DisplayServer::get_singleton()->window_set_flag(DisplayServerEnums::WindowFlags(p_flag), p_enabled, window_id); } } } @@ -568,9 +569,9 @@ void Window::set_flag(Flags p_flag, bool p_enabled) { bool Window::get_flag(Flags p_flag) const { ERR_READ_THREAD_GUARD_V(false); ERR_FAIL_INDEX_V(p_flag, FLAG_MAX, false); - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { if (!is_in_edited_scene_root()) { - flags[p_flag] = DisplayServer::get_singleton()->window_get_flag(DisplayServer::WindowFlags(p_flag), window_id); + flags[p_flag] = DisplayServer::get_singleton()->window_get_flag(DisplayServerEnums::WindowFlags(p_flag), window_id); } } return flags[p_flag]; @@ -585,7 +586,7 @@ void Window::set_hdr_output_requested(bool p_requested) { hdr_output_requested = p_requested; - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_request_hdr_output(hdr_output_requested, window_id); } @@ -595,7 +596,7 @@ void Window::set_hdr_output_requested(bool p_requested) { bool Window::is_hdr_output_requested() const { ERR_READ_THREAD_GUARD_V(false); - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { hdr_output_requested = DisplayServer::get_singleton()->window_is_hdr_output_requested(window_id); } @@ -605,7 +606,7 @@ bool Window::is_hdr_output_requested() const { float Window::get_output_max_linear_value() const { ERR_READ_THREAD_GUARD_V(1.0f); - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { return DisplayServer::get_singleton()->window_get_output_max_linear_value(window_id); } @@ -614,7 +615,7 @@ float Window::get_output_max_linear_value() const { bool Window::is_maximize_allowed() const { ERR_READ_THREAD_GUARD_V(false); - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { return DisplayServer::get_singleton()->window_is_maximize_allowed(window_id); } return true; @@ -622,21 +623,21 @@ bool Window::is_maximize_allowed() const { void Window::request_attention() { ERR_MAIN_THREAD_GUARD; - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_request_attention(window_id); } } void Window::set_taskbar_progress_value(float p_value) { ERR_MAIN_THREAD_GUARD; - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_set_taskbar_progress_value(p_value, window_id); } } -void Window::set_taskbar_progress_state(DisplayServer::ProgressState p_state) { +void Window::set_taskbar_progress_state(DisplayServerEnums::ProgressState p_state) { ERR_MAIN_THREAD_GUARD; - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_set_taskbar_progress_state(p_state); } } @@ -653,7 +654,7 @@ bool Window::can_draw() const { if (!is_inside_tree()) { return false; } - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { return DisplayServer::get_singleton()->window_can_draw(window_id); } @@ -662,14 +663,14 @@ bool Window::can_draw() const { void Window::set_ime_active(bool p_active) { ERR_MAIN_THREAD_GUARD; - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_set_ime_active(p_active, window_id); } } void Window::set_ime_position(const Point2i &p_pos) { ERR_MAIN_THREAD_GUARD; - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_set_ime_position(p_pos, window_id); } } @@ -689,7 +690,7 @@ bool Window::is_in_edited_scene_root() const { } void Window::_make_window() { - ERR_FAIL_COND(window_id != DisplayServer::INVALID_WINDOW_ID); + ERR_FAIL_COND(window_id != DisplayServerEnums::INVALID_WINDOW_ID); if (transient && transient_to_focused) { _make_transient(); @@ -702,24 +703,24 @@ void Window::_make_window() { } } - DisplayServer::VSyncMode vsync_mode = DisplayServer::get_singleton()->window_get_vsync_mode(DisplayServer::MAIN_WINDOW_ID); + DisplayServerEnums::VSyncMode vsync_mode = DisplayServer::get_singleton()->window_get_vsync_mode(DisplayServerEnums::MAIN_WINDOW_ID); Rect2i window_rect; if (initial_position == WINDOW_INITIAL_POSITION_ABSOLUTE) { window_rect = Rect2i(position, size); } else if (initial_position == WINDOW_INITIAL_POSITION_CENTER_PRIMARY_SCREEN) { - window_rect = Rect2i(DisplayServer::get_singleton()->screen_get_position(DisplayServer::SCREEN_PRIMARY) + (DisplayServer::get_singleton()->screen_get_size(DisplayServer::SCREEN_PRIMARY) - size) / 2, size); + window_rect = Rect2i(DisplayServer::get_singleton()->screen_get_position(DisplayServerEnums::SCREEN_PRIMARY) + (DisplayServer::get_singleton()->screen_get_size(DisplayServerEnums::SCREEN_PRIMARY) - size) / 2, size); } else if (initial_position == WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN) { - window_rect = Rect2i(DisplayServer::get_singleton()->screen_get_position(DisplayServer::SCREEN_OF_MAIN_WINDOW) + (DisplayServer::get_singleton()->screen_get_size(DisplayServer::SCREEN_OF_MAIN_WINDOW) - size) / 2, size); + window_rect = Rect2i(DisplayServer::get_singleton()->screen_get_position(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) + (DisplayServer::get_singleton()->screen_get_size(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) - size) / 2, size); } else if (initial_position == WINDOW_INITIAL_POSITION_CENTER_OTHER_SCREEN) { window_rect = Rect2i(DisplayServer::get_singleton()->screen_get_position(current_screen) + (DisplayServer::get_singleton()->screen_get_size(current_screen) - size) / 2, size); } else if (initial_position == WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_MOUSE_FOCUS) { - window_rect = Rect2i(DisplayServer::get_singleton()->screen_get_position(DisplayServer::SCREEN_WITH_MOUSE_FOCUS) + (DisplayServer::get_singleton()->screen_get_size(DisplayServer::SCREEN_WITH_MOUSE_FOCUS) - size) / 2, size); + window_rect = Rect2i(DisplayServer::get_singleton()->screen_get_position(DisplayServerEnums::SCREEN_WITH_MOUSE_FOCUS) + (DisplayServer::get_singleton()->screen_get_size(DisplayServerEnums::SCREEN_WITH_MOUSE_FOCUS) - size) / 2, size); } else if (initial_position == WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_KEYBOARD_FOCUS) { - window_rect = Rect2i(DisplayServer::get_singleton()->screen_get_position(DisplayServer::SCREEN_WITH_KEYBOARD_FOCUS) + (DisplayServer::get_singleton()->screen_get_size(DisplayServer::SCREEN_WITH_KEYBOARD_FOCUS) - size) / 2, size); + window_rect = Rect2i(DisplayServer::get_singleton()->screen_get_position(DisplayServerEnums::SCREEN_WITH_KEYBOARD_FOCUS) + (DisplayServer::get_singleton()->screen_get_size(DisplayServerEnums::SCREEN_WITH_KEYBOARD_FOCUS) - size) / 2, size); } - window_id = DisplayServer::get_singleton()->create_sub_window(DisplayServer::WindowMode(mode), vsync_mode, f, window_rect, is_in_edited_scene_root() ? false : exclusive, transient_parent ? transient_parent->window_id : DisplayServer::INVALID_WINDOW_ID); - ERR_FAIL_COND(window_id == DisplayServer::INVALID_WINDOW_ID); + window_id = DisplayServer::get_singleton()->create_sub_window(DisplayServerEnums::WindowMode(mode), vsync_mode, f, window_rect, is_in_edited_scene_root() ? false : exclusive, transient_parent ? transient_parent->window_id : DisplayServerEnums::INVALID_WINDOW_ID); + ERR_FAIL_COND(window_id == DisplayServerEnums::INVALID_WINDOW_ID); DisplayServer::get_singleton()->window_set_max_size(Size2i(), window_id); DisplayServer::get_singleton()->window_set_min_size(Size2i(), window_id); DisplayServer::get_singleton()->window_set_mouse_passthrough(mpath, window_id); @@ -732,7 +733,7 @@ void Window::_make_window() { if (transient_parent) { for (const Window *E : transient_children) { - if (E->window_id != DisplayServer::INVALID_WINDOW_ID) { + if (E->window_id != DisplayServerEnums::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_set_transient(E->window_id, transient_parent->window_id); } } @@ -745,19 +746,19 @@ void Window::_make_window() { } void Window::_update_from_window() { - ERR_FAIL_COND(window_id == DisplayServer::INVALID_WINDOW_ID); + ERR_FAIL_COND(window_id == DisplayServerEnums::INVALID_WINDOW_ID); mode = (Mode)DisplayServer::get_singleton()->window_get_mode(window_id); for (int i = 0; i < FLAG_MAX; i++) { - flags[i] = DisplayServer::get_singleton()->window_get_flag(DisplayServer::WindowFlags(i), window_id); + flags[i] = DisplayServer::get_singleton()->window_get_flag(DisplayServerEnums::WindowFlags(i), window_id); } } void Window::_clear_window() { - ERR_FAIL_COND(window_id == DisplayServer::INVALID_WINDOW_ID); + ERR_FAIL_COND(window_id == DisplayServerEnums::INVALID_WINDOW_ID); bool had_focus = has_focus(); - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SELF_FITTING_WINDOWS)) { + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SELF_FITTING_WINDOWS)) { float win_scale = DisplayServer::get_singleton()->window_get_scale(window_id); Size2i adjusted_size = Size2i(size.width / win_scale, size.height / win_scale); @@ -766,20 +767,20 @@ void Window::_clear_window() { _rect_changed_callback(Rect2i(adjusted_pos, adjusted_size)); } - if (transient_parent && transient_parent->window_id != DisplayServer::INVALID_WINDOW_ID) { - DisplayServer::get_singleton()->window_set_transient(window_id, DisplayServer::INVALID_WINDOW_ID); + if (transient_parent && transient_parent->window_id != DisplayServerEnums::INVALID_WINDOW_ID) { + DisplayServer::get_singleton()->window_set_transient(window_id, DisplayServerEnums::INVALID_WINDOW_ID); } for (const Window *E : transient_children) { - if (E->window_id != DisplayServer::INVALID_WINDOW_ID) { - DisplayServer::get_singleton()->window_set_transient(E->window_id, DisplayServer::INVALID_WINDOW_ID); + if (E->window_id != DisplayServerEnums::INVALID_WINDOW_ID) { + DisplayServer::get_singleton()->window_set_transient(E->window_id, DisplayServerEnums::INVALID_WINDOW_ID); } } _update_from_window(); DisplayServer::get_singleton()->delete_sub_window(window_id); - window_id = DisplayServer::INVALID_WINDOW_ID; + window_id = DisplayServerEnums::INVALID_WINDOW_ID; // If closing window was focused and has a parent, return focus. if (had_focus && transient_parent) { @@ -809,7 +810,7 @@ void Window::_rect_changed_callback(const Rect2i &p_callback) { size = p_callback.size; _update_viewport_size(); } - if (window_id != DisplayServer::INVALID_WINDOW_ID && !DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SELF_FITTING_WINDOWS)) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID && !DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SELF_FITTING_WINDOWS)) { Vector2 sz_out = DisplayServer::get_singleton()->window_get_size_with_decorations(window_id); Vector2 pos_out = DisplayServer::get_singleton()->window_get_position_with_decorations(window_id); Vector2 sz_in = DisplayServer::get_singleton()->window_get_size(window_id); @@ -831,9 +832,9 @@ void Window::_propagate_window_notification(Node *p_node, int p_notification) { } } -void Window::_event_callback(DisplayServer::WindowEvent p_event) { +void Window::_event_callback(DisplayServerEnums::WindowEvent p_event) { switch (p_event) { - case DisplayServer::WINDOW_EVENT_MOUSE_ENTER: { + case DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER: { if (!is_inside_tree()) { return; } @@ -845,16 +846,16 @@ void Window::_event_callback(DisplayServer::WindowEvent p_event) { #ifdef DEV_ENABLED WARN_PRINT_ONCE("Entering a window while a window is hovered should never happen in DisplayServer."); #endif // DEV_ENABLED - root->gui.windowmanager_window_over->_event_callback(DisplayServer::WINDOW_EVENT_MOUSE_EXIT); + root->gui.windowmanager_window_over->_event_callback(DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT); } _propagate_window_notification(this, NOTIFICATION_WM_MOUSE_ENTER); root->gui.windowmanager_window_over = this; mouse_in_window = true; - if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_CURSOR_SHAPE)) { - DisplayServer::get_singleton()->cursor_set_shape(DisplayServer::CURSOR_ARROW); //restore cursor shape + if (DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_CURSOR_SHAPE)) { + DisplayServer::get_singleton()->cursor_set_shape(DisplayServerEnums::CURSOR_ARROW); //restore cursor shape } } break; - case DisplayServer::WINDOW_EVENT_MOUSE_EXIT: { + case DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT: { if (!is_inside_tree()) { return; } @@ -873,7 +874,7 @@ void Window::_event_callback(DisplayServer::WindowEvent p_event) { root->gui.windowmanager_window_over = nullptr; _propagate_window_notification(this, NOTIFICATION_WM_MOUSE_EXIT); } break; - case DisplayServer::WINDOW_EVENT_FOCUS_IN: { + case DisplayServerEnums::WINDOW_EVENT_FOCUS_IN: { focused = true; focused_window = this; _propagate_window_notification(this, NOTIFICATION_WM_WINDOW_FOCUS_IN); @@ -890,7 +891,7 @@ void Window::_event_callback(DisplayServer::WindowEvent p_event) { } } } break; - case DisplayServer::WINDOW_EVENT_FOCUS_OUT: { + case DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT: { focused = false; if (focused_window == this) { focused_window = nullptr; @@ -898,26 +899,26 @@ void Window::_event_callback(DisplayServer::WindowEvent p_event) { _propagate_window_notification(this, NOTIFICATION_WM_WINDOW_FOCUS_OUT); emit_signal(SceneStringName(focus_exited)); } break; - case DisplayServer::WINDOW_EVENT_CLOSE_REQUEST: { + case DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST: { if (exclusive_child != nullptr) { break; //has an exclusive child, can't get events until child is closed } _propagate_window_notification(this, NOTIFICATION_WM_CLOSE_REQUEST); emit_signal(SNAME("close_requested")); } break; - case DisplayServer::WINDOW_EVENT_GO_BACK_REQUEST: { + case DisplayServerEnums::WINDOW_EVENT_GO_BACK_REQUEST: { _propagate_window_notification(this, NOTIFICATION_WM_GO_BACK_REQUEST); emit_signal(SNAME("go_back_requested")); } break; - case DisplayServer::WINDOW_EVENT_DPI_CHANGE: { + case DisplayServerEnums::WINDOW_EVENT_DPI_CHANGE: { _update_viewport_size(); _propagate_window_notification(this, NOTIFICATION_WM_DPI_CHANGE); emit_signal(SNAME("dpi_changed")); } break; - case DisplayServer::WINDOW_EVENT_TITLEBAR_CHANGE: { + case DisplayServerEnums::WINDOW_EVENT_TITLEBAR_CHANGE: { emit_signal(SNAME("titlebar_changed")); } break; - case DisplayServer::WINDOW_EVENT_FORCE_CLOSE: { + case DisplayServerEnums::WINDOW_EVENT_FORCE_CLOSE: { hide(); } break; } @@ -1011,10 +1012,10 @@ void Window::set_visible(bool p_visible) { Viewport *embedder_vp = get_embedder(); if (!embedder_vp) { - if (!p_visible && window_id != DisplayServer::INVALID_WINDOW_ID) { + if (!p_visible && window_id != DisplayServerEnums::INVALID_WINDOW_ID) { _clear_window(); } - if (p_visible && window_id == DisplayServer::INVALID_WINDOW_ID) { + if (p_visible && window_id == DisplayServerEnums::INVALID_WINDOW_ID) { _make_window(); } } else { @@ -1081,8 +1082,8 @@ void Window::set_visible(bool p_visible) { void Window::_clear_transient() { if (transient_parent) { - if (transient_parent->window_id != DisplayServer::INVALID_WINDOW_ID && window_id != DisplayServer::INVALID_WINDOW_ID) { - DisplayServer::get_singleton()->window_set_transient(window_id, DisplayServer::INVALID_WINDOW_ID); + if (transient_parent->window_id != DisplayServerEnums::INVALID_WINDOW_ID && window_id != DisplayServerEnums::INVALID_WINDOW_ID) { + DisplayServer::get_singleton()->window_set_transient(window_id, DisplayServerEnums::INVALID_WINDOW_ID); } transient_parent->transient_children.erase(this); if (transient_parent->exclusive_child == this) { @@ -1102,8 +1103,8 @@ void Window::_make_transient() { Window *window = nullptr; if (!is_embedded() && transient_to_focused) { - DisplayServer::WindowID focused_window_id = DisplayServer::get_singleton()->get_focused_window(); - if (focused_window_id != DisplayServer::INVALID_WINDOW_ID) { + DisplayServerEnums::WindowID focused_window_id = DisplayServer::get_singleton()->get_focused_window(); + if (focused_window_id != DisplayServerEnums::INVALID_WINDOW_ID) { window = Window::get_from_id(focused_window_id); } } @@ -1130,7 +1131,7 @@ void Window::_make_transient() { } //see if we can make transient - if (transient_parent->window_id != DisplayServer::INVALID_WINDOW_ID && window_id != DisplayServer::INVALID_WINDOW_ID) { + if (transient_parent->window_id != DisplayServerEnums::INVALID_WINDOW_ID && window_id != DisplayServerEnums::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_set_transient(window_id, transient_parent->window_id); } } @@ -1198,7 +1199,7 @@ void Window::set_exclusive(bool p_exclusive) { exclusive = p_exclusive; - if (!embedder && window_id != DisplayServer::INVALID_WINDOW_ID) { + if (!embedder && window_id != DisplayServerEnums::INVALID_WINDOW_ID) { if (is_in_edited_scene_root()) { DisplayServer::get_singleton()->window_set_exclusive(window_id, false); } else { @@ -1235,7 +1236,7 @@ Size2i Window::_clamp_window_size(const Size2i &p_size) { void Window::_update_window_size() { Size2i size_limit = get_clamped_minimum_size(); - if (!embedder && window_id != DisplayServer::INVALID_WINDOW_ID && keep_title_visible) { + if (!embedder && window_id != DisplayServerEnums::INVALID_WINDOW_ID && keep_title_visible) { Size2i title_size = DisplayServer::get_singleton()->window_get_title_size(displayed_title, window_id); size_limit = size_limit.max(title_size); } @@ -1262,9 +1263,9 @@ void Window::_update_window_size() { size = size.maxi(1); embedder->_sub_window_update(this); - } else if (window_id != DisplayServer::INVALID_WINDOW_ID) { + } else if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { // When main window embedded in the editor, we can't resize the main window. - if (window_id != DisplayServer::MAIN_WINDOW_ID || !Engine::get_singleton()->is_embedded_in_editor()) { + if (window_id != DisplayServerEnums::MAIN_WINDOW_ID || !Engine::get_singleton()->is_embedded_in_editor()) { if (reset_min_first && wrap_controls) { // Avoid an error if setting max_size to a value between min_size and the previous size_limit. DisplayServer::get_singleton()->window_set_min_size(Size2i(), window_id); @@ -1408,13 +1409,13 @@ void Window::_update_viewport_size() { } } - bool allocate = is_inside_tree() && visible && (window_id != DisplayServer::INVALID_WINDOW_ID || embedder != nullptr); + bool allocate = is_inside_tree() && visible && (window_id != DisplayServerEnums::INVALID_WINDOW_ID || embedder != nullptr); _set_size(final_size, 1, final_size_override, allocate); - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { RenderingServer::get_singleton()->viewport_attach_to_screen(get_viewport_rid(), attach_to_screen_rect, window_id); } else if (!is_embedded()) { - RenderingServer::get_singleton()->viewport_attach_to_screen(get_viewport_rid(), Rect2i(), DisplayServer::INVALID_WINDOW_ID); + RenderingServer::get_singleton()->viewport_attach_to_screen(get_viewport_rid(), Rect2i(), DisplayServerEnums::INVALID_WINDOW_ID); } notification(NOTIFICATION_WM_SIZE_CHANGED); @@ -1444,7 +1445,7 @@ void Window::set_force_native(bool p_force_native) { if (is_visible() && !is_in_edited_scene_root()) { ERR_FAIL_MSG("Can't change \"force_native\" while a window is displayed. Consider hiding window before changing this value."); } - if (window_id == DisplayServer::MAIN_WINDOW_ID) { + if (window_id == DisplayServerEnums::MAIN_WINDOW_ID) { return; } force_native = p_force_native; @@ -1459,7 +1460,7 @@ bool Window::get_force_native() const { Viewport *Window::get_embedder() const { ERR_READ_THREAD_GUARD_V(nullptr); - if (force_native && DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SUBWINDOWS) && !is_in_edited_scene_root()) { + if (force_native && DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SUBWINDOWS) && !is_in_edited_scene_root()) { return nullptr; } @@ -1485,7 +1486,7 @@ RID Window::get_accessibility_element() const { } if (get_embedder() || is_popup()) { return Node::get_accessibility_element(); - } else if (window_id != DisplayServer::INVALID_WINDOW_ID) { + } else if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { return AccessibilityServer::get_singleton()->get_window_root(window_id); } else { return RID(); @@ -1493,7 +1494,7 @@ RID Window::get_accessibility_element() const { } RID Window::get_focused_accessibility_element() const { - if (window_id == DisplayServer::MAIN_WINDOW_ID) { + if (window_id == DisplayServerEnums::MAIN_WINDOW_ID) { if (get_child_count() > 0) { return get_child(0)->get_focused_accessibility_element(); // Try scene tree root node. } @@ -1534,7 +1535,7 @@ void Window::_notification(int p_what) { Control *parent_ctrl = Object::cast_to(get_parent()); Transform2D parent_tr = parent_ctrl ? parent_ctrl->get_global_transform() : Transform2D(); Transform2D tr; - if (window_id == DisplayServer::INVALID_WINDOW_ID) { + if (window_id == DisplayServerEnums::INVALID_WINDOW_ID) { tr.set_origin(position); } else { Window *np = get_non_popup_window(); @@ -1629,7 +1630,7 @@ void Window::_notification(int p_what) { if (!get_parent()) { // It's the root window! visible = true; // Always visible. - window_id = DisplayServer::MAIN_WINDOW_ID; + window_id = DisplayServerEnums::MAIN_WINDOW_ID; focused_window = this; DisplayServer::get_singleton()->window_attach_instance_id(get_instance_id(), window_id); AccessibilityServer::get_singleton()->set_window_callbacks(window_id, callable_mp(this, &Window::_accessibility_activate), callable_mp(this, &Window::_accessibility_deactivate)); @@ -1650,10 +1651,10 @@ void Window::_notification(int p_what) { _update_window_callbacks(); // Simulate mouse-enter event when mouse is over the window, since OS event might arrive before setting callbacks. if (!mouse_in_window && Rect2(position, size).has_point(DisplayServer::get_singleton()->mouse_get_position())) { - _event_callback(DisplayServer::WINDOW_EVENT_MOUSE_ENTER); + _event_callback(DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER); } RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RSE::VIEWPORT_UPDATE_WHEN_VISIBLE); - if (DisplayServer::get_singleton()->window_get_flag(DisplayServer::WindowFlags(FLAG_TRANSPARENT), window_id)) { + if (DisplayServer::get_singleton()->window_get_flag(DisplayServerEnums::WindowFlags(FLAG_TRANSPARENT), window_id)) { set_transparent_background(true); } } else { @@ -1668,7 +1669,7 @@ void Window::_notification(int p_what) { _make_transient(); } if (visible) { - if (window_id != DisplayServer::MAIN_WINDOW_ID && get_tree() && get_tree()->is_accessibility_supported()) { + if (window_id != DisplayServerEnums::MAIN_WINDOW_ID && get_tree() && get_tree()->is_accessibility_supported()) { get_tree()->_accessibility_force_update(); _accessibility_notify_enter(this); AccessibilityServer::get_singleton()->window_activation_completed(get_window_id()); @@ -1723,7 +1724,7 @@ void Window::_notification(int p_what) { set_theme_context(nullptr, false); - if (visible && window_id != DisplayServer::MAIN_WINDOW_ID) { + if (visible && window_id != DisplayServerEnums::MAIN_WINDOW_ID) { if (get_tree() && get_tree()->is_accessibility_supported()) { _accessibility_notify_exit(this); AccessibilityServer::get_singleton()->window_deactivation_completed(get_window_id()); @@ -1743,8 +1744,8 @@ void Window::_notification(int p_what) { _clear_transient(); } - if (!is_embedded() && window_id != DisplayServer::INVALID_WINDOW_ID) { - if (window_id == DisplayServer::MAIN_WINDOW_ID) { + if (!is_embedded() && window_id != DisplayServerEnums::INVALID_WINDOW_ID) { + if (window_id == DisplayServerEnums::MAIN_WINDOW_ID) { RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RSE::VIEWPORT_UPDATE_DISABLED); _update_window_callbacks(); } else { @@ -1821,7 +1822,7 @@ void Window::set_keep_title_visible(bool p_title_visible) { return; } keep_title_visible = p_title_visible; - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { _update_window_size(); } } @@ -1851,12 +1852,12 @@ Rect2i Window::get_nonclient_area() const { return nonclient_area; } -DisplayServer::WindowID Window::get_window_id() const { - ERR_READ_THREAD_GUARD_V(DisplayServer::INVALID_WINDOW_ID); +DisplayServerEnums::WindowID Window::get_window_id() const { + ERR_READ_THREAD_GUARD_V(DisplayServerEnums::INVALID_WINDOW_ID); if (get_embedder()) { #ifdef TOOLS_ENABLED if (is_part_of_edited_scene()) { - return DisplayServer::MAIN_WINDOW_ID; + return DisplayServerEnums::MAIN_WINDOW_ID; } #endif return parent->get_window_id(); @@ -1867,7 +1868,7 @@ DisplayServer::WindowID Window::get_window_id() const { void Window::set_mouse_passthrough_polygon(const Vector &p_region) { ERR_MAIN_THREAD_GUARD; mpath = p_region; - if (window_id == DisplayServer::INVALID_WINDOW_ID) { + if (window_id == DisplayServerEnums::INVALID_WINDOW_ID) { return; } DisplayServer::get_singleton()->window_set_mouse_passthrough(mpath, window_id); @@ -2022,7 +2023,7 @@ Window *Window::get_parent_visible_window() const { void Window::popup_on_parent(const Rect2i &p_parent_rect) { ERR_MAIN_THREAD_GUARD; ERR_FAIL_COND(!is_inside_tree()); - ERR_FAIL_COND_MSG(window_id == DisplayServer::MAIN_WINDOW_ID, "Can't popup the main window."); + ERR_FAIL_COND_MSG(window_id == DisplayServerEnums::MAIN_WINDOW_ID, "Can't popup the main window."); if (!is_embedded()) { Window *window = get_parent_visible_window(); @@ -2040,7 +2041,7 @@ void Window::popup_on_parent(const Rect2i &p_parent_rect) { void Window::popup_centered_clamped(const Size2i &p_size, float p_fallback_ratio) { ERR_MAIN_THREAD_GUARD; ERR_FAIL_COND(!is_inside_tree()); - ERR_FAIL_COND_MSG(window_id == DisplayServer::MAIN_WINDOW_ID, "Can't popup the main window."); + ERR_FAIL_COND_MSG(window_id == DisplayServerEnums::MAIN_WINDOW_ID, "Can't popup the main window."); // Consider the current size when calling with the default value. Size2i expected_size = p_size == Size2i() ? size : p_size; @@ -2050,7 +2051,7 @@ void Window::popup_centered_clamped(const Size2i &p_size, float p_fallback_ratio if (is_embedded()) { parent_rect = get_embedder()->get_visible_rect(); } else { - DisplayServer::WindowID parent_id = get_parent_visible_window()->get_window_id(); + DisplayServerEnums::WindowID parent_id = get_parent_visible_window()->get_window_id(); int parent_screen = DisplayServer::get_singleton()->window_get_current_screen(parent_id); parent_rect.position = DisplayServer::get_singleton()->screen_get_position(parent_screen); parent_rect.size = DisplayServer::get_singleton()->screen_get_size(parent_screen); @@ -2082,7 +2083,7 @@ void Window::popup_centered_clamped(const Size2i &p_size, float p_fallback_ratio void Window::popup_centered(const Size2i &p_minsize) { ERR_MAIN_THREAD_GUARD; ERR_FAIL_COND(!is_inside_tree()); - ERR_FAIL_COND_MSG(window_id == DisplayServer::MAIN_WINDOW_ID, "Can't popup the main window."); + ERR_FAIL_COND_MSG(window_id == DisplayServerEnums::MAIN_WINDOW_ID, "Can't popup the main window."); // Consider the current size when calling with the default value. Size2i expected_size = p_minsize == Size2i() ? size : p_minsize; @@ -2092,7 +2093,7 @@ void Window::popup_centered(const Size2i &p_minsize) { if (is_embedded()) { parent_rect = get_embedder()->get_visible_rect(); } else { - DisplayServer::WindowID parent_id = get_parent_visible_window()->get_window_id(); + DisplayServerEnums::WindowID parent_id = get_parent_visible_window()->get_window_id(); int parent_screen = DisplayServer::get_singleton()->window_get_current_screen(parent_id); parent_rect.position = DisplayServer::get_singleton()->screen_get_position(parent_screen); parent_rect.size = DisplayServer::get_singleton()->screen_get_size(parent_screen); @@ -2121,7 +2122,7 @@ void Window::popup_centered(const Size2i &p_minsize) { void Window::popup_centered_ratio(float p_ratio) { ERR_MAIN_THREAD_GUARD; ERR_FAIL_COND(!is_inside_tree()); - ERR_FAIL_COND_MSG(window_id == DisplayServer::MAIN_WINDOW_ID, "Can't popup the main window."); + ERR_FAIL_COND_MSG(window_id == DisplayServerEnums::MAIN_WINDOW_ID, "Can't popup the main window."); ERR_FAIL_COND_MSG(p_ratio <= 0.0 || p_ratio > 1.0, "Ratio must be between 0.0 and 1.0!"); Rect2 parent_rect; @@ -2129,7 +2130,7 @@ void Window::popup_centered_ratio(float p_ratio) { if (is_embedded()) { parent_rect = get_embedder()->get_visible_rect(); } else { - DisplayServer::WindowID parent_id = get_parent_visible_window()->get_window_id(); + DisplayServerEnums::WindowID parent_id = get_parent_visible_window()->get_window_id(); int parent_screen = DisplayServer::get_singleton()->window_get_current_screen(parent_id); parent_rect.position = DisplayServer::get_singleton()->screen_get_position(parent_screen); parent_rect.size = DisplayServer::get_singleton()->screen_get_size(parent_screen); @@ -2184,7 +2185,7 @@ void Window::_popup_base(const Rect2i &p_screen_rect) { // Update window size to calculate the actual window size based on contents minimum size and minimum size. _update_window_size(); - bool should_fit = is_embedded() || !DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SELF_FITTING_WINDOWS); + bool should_fit = is_embedded() || !DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SELF_FITTING_WINDOWS); if (p_screen_rect != Rect2i()) { set_position(p_screen_rect.position); @@ -2325,14 +2326,14 @@ void Window::grab_focus() { ERR_MAIN_THREAD_GUARD; if (embedder) { embedder->_sub_window_grab_focus(this); - } else if (window_id != DisplayServer::INVALID_WINDOW_ID) { + } else if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_move_to_foreground(window_id); } } bool Window::has_focus() const { ERR_READ_THREAD_GUARD_V(false); - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { return DisplayServer::get_singleton()->window_is_focused(window_id); } return focused; @@ -2340,7 +2341,7 @@ bool Window::has_focus() const { bool Window::has_focus_or_active_popup() const { ERR_READ_THREAD_GUARD_V(false); - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { return DisplayServer::get_singleton()->window_is_focused(window_id) || (DisplayServer::get_singleton()->window_get_active_popup() == window_id); } return focused; @@ -2348,44 +2349,44 @@ bool Window::has_focus_or_active_popup() const { void Window::start_drag() { ERR_MAIN_THREAD_GUARD; - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_start_drag(window_id); } else if (embedder) { embedder->_window_start_drag(this); } } -void Window::start_resize(DisplayServer::WindowResizeEdge p_edge) { +void Window::start_resize(DisplayServerEnums::WindowResizeEdge p_edge) { ERR_MAIN_THREAD_GUARD; if (get_flag(FLAG_RESIZE_DISABLED)) { return; } - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_start_resize(p_edge, window_id); } else if (embedder) { switch (p_edge) { - case DisplayServer::WINDOW_EDGE_TOP_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_TOP_LEFT: { embedder->_window_start_resize(Viewport::SUB_WINDOW_RESIZE_TOP_LEFT, this); } break; - case DisplayServer::WINDOW_EDGE_TOP: { + case DisplayServerEnums::WINDOW_EDGE_TOP: { embedder->_window_start_resize(Viewport::SUB_WINDOW_RESIZE_TOP, this); } break; - case DisplayServer::WINDOW_EDGE_TOP_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_TOP_RIGHT: { embedder->_window_start_resize(Viewport::SUB_WINDOW_RESIZE_TOP_RIGHT, this); } break; - case DisplayServer::WINDOW_EDGE_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_LEFT: { embedder->_window_start_resize(Viewport::SUB_WINDOW_RESIZE_LEFT, this); } break; - case DisplayServer::WINDOW_EDGE_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_RIGHT: { embedder->_window_start_resize(Viewport::SUB_WINDOW_RESIZE_RIGHT, this); } break; - case DisplayServer::WINDOW_EDGE_BOTTOM_LEFT: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM_LEFT: { embedder->_window_start_resize(Viewport::SUB_WINDOW_RESIZE_BOTTOM_LEFT, this); } break; - case DisplayServer::WINDOW_EDGE_BOTTOM: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM: { embedder->_window_start_resize(Viewport::SUB_WINDOW_RESIZE_BOTTOM, this); } break; - case DisplayServer::WINDOW_EDGE_BOTTOM_RIGHT: { + case DisplayServerEnums::WINDOW_EDGE_BOTTOM_RIGHT: { embedder->_window_start_resize(Viewport::SUB_WINDOW_RESIZE_BOTTOM_RIGHT, this); } break; default: @@ -3195,7 +3196,7 @@ Transform2D Window::get_screen_transform_internal(bool p_absolute_position) cons Transform2D Window::get_popup_base_transform_native() const { ERR_READ_THREAD_GUARD_V(Transform2D()); - if (!DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SUBWINDOWS)) { + if (!DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SUBWINDOWS)) { return Transform2D(); } Transform2D popup_base_transform; @@ -3273,7 +3274,7 @@ void Window::_update_displayed_title() { displayed_title = atr(title); #ifdef DEBUG_ENABLED - if (window_id == DisplayServer::MAIN_WINDOW_ID && !Engine::get_singleton()->is_project_manager_hint()) { + if (window_id == DisplayServerEnums::MAIN_WINDOW_ID && !Engine::get_singleton()->is_project_manager_hint()) { // Append a suffix to the window title to denote that the project is running // from a debug build (including the editor, excluding the project manager). // Since this results in lower performance, this should be clearly presented @@ -3284,7 +3285,7 @@ void Window::_update_displayed_title() { if (embedder) { embedder->_sub_window_update(this); - } else if (window_id != DisplayServer::INVALID_WINDOW_ID) { + } else if (window_id != DisplayServerEnums::INVALID_WINDOW_ID) { DisplayServer::get_singleton()->window_set_title(displayed_title, window_id); if (keep_title_visible) { Size2i title_size = DisplayServer::get_singleton()->window_get_title_size(displayed_title, window_id); @@ -3296,7 +3297,7 @@ void Window::_update_displayed_title() { } #ifdef DEBUG_ENABLED - if (EngineDebugger::get_singleton() && window_id == DisplayServer::MAIN_WINDOW_ID && !Engine::get_singleton()->is_project_manager_hint()) { + if (EngineDebugger::get_singleton() && window_id == DisplayServerEnums::MAIN_WINDOW_ID && !Engine::get_singleton()->is_project_manager_hint()) { Array arr = { displayed_title }; EngineDebugger::get_singleton()->send_message("window:title", arr); } diff --git a/scene/main/window.h b/scene/main/window.h index ff162fb026f9..c00a038d128d 100644 --- a/scene/main/window.h +++ b/scene/main/window.h @@ -32,7 +32,7 @@ #include "scene/main/viewport.h" #include "scene/resources/theme.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" class Font; class StyleBox; @@ -45,28 +45,28 @@ class Window : public Viewport { public: // Keep synced with enum hint for `mode` property. enum Mode { - MODE_WINDOWED = DisplayServer::WINDOW_MODE_WINDOWED, - MODE_MINIMIZED = DisplayServer::WINDOW_MODE_MINIMIZED, - MODE_MAXIMIZED = DisplayServer::WINDOW_MODE_MAXIMIZED, - MODE_FULLSCREEN = DisplayServer::WINDOW_MODE_FULLSCREEN, - MODE_EXCLUSIVE_FULLSCREEN = DisplayServer::WINDOW_MODE_EXCLUSIVE_FULLSCREEN, + MODE_WINDOWED = DisplayServerEnums::WINDOW_MODE_WINDOWED, + MODE_MINIMIZED = DisplayServerEnums::WINDOW_MODE_MINIMIZED, + MODE_MAXIMIZED = DisplayServerEnums::WINDOW_MODE_MAXIMIZED, + MODE_FULLSCREEN = DisplayServerEnums::WINDOW_MODE_FULLSCREEN, + MODE_EXCLUSIVE_FULLSCREEN = DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN, }; enum Flags { - FLAG_RESIZE_DISABLED = DisplayServer::WINDOW_FLAG_RESIZE_DISABLED, - FLAG_BORDERLESS = DisplayServer::WINDOW_FLAG_BORDERLESS, - FLAG_ALWAYS_ON_TOP = DisplayServer::WINDOW_FLAG_ALWAYS_ON_TOP, - FLAG_TRANSPARENT = DisplayServer::WINDOW_FLAG_TRANSPARENT, - FLAG_NO_FOCUS = DisplayServer::WINDOW_FLAG_NO_FOCUS, - FLAG_POPUP = DisplayServer::WINDOW_FLAG_POPUP, - FLAG_EXTEND_TO_TITLE = DisplayServer::WINDOW_FLAG_EXTEND_TO_TITLE, - FLAG_MOUSE_PASSTHROUGH = DisplayServer::WINDOW_FLAG_MOUSE_PASSTHROUGH, - FLAG_SHARP_CORNERS = DisplayServer::WINDOW_FLAG_SHARP_CORNERS, - FLAG_EXCLUDE_FROM_CAPTURE = DisplayServer::WINDOW_FLAG_EXCLUDE_FROM_CAPTURE, - FLAG_POPUP_WM_HINT = DisplayServer::WINDOW_FLAG_POPUP_WM_HINT, - FLAG_MINIMIZE_DISABLED = DisplayServer::WINDOW_FLAG_MINIMIZE_DISABLED, - FLAG_MAXIMIZE_DISABLED = DisplayServer::WINDOW_FLAG_MAXIMIZE_DISABLED, - FLAG_MAX = DisplayServer::WINDOW_FLAG_MAX, + FLAG_RESIZE_DISABLED = DisplayServerEnums::WINDOW_FLAG_RESIZE_DISABLED, + FLAG_BORDERLESS = DisplayServerEnums::WINDOW_FLAG_BORDERLESS, + FLAG_ALWAYS_ON_TOP = DisplayServerEnums::WINDOW_FLAG_ALWAYS_ON_TOP, + FLAG_TRANSPARENT = DisplayServerEnums::WINDOW_FLAG_TRANSPARENT, + FLAG_NO_FOCUS = DisplayServerEnums::WINDOW_FLAG_NO_FOCUS, + FLAG_POPUP = DisplayServerEnums::WINDOW_FLAG_POPUP, + FLAG_EXTEND_TO_TITLE = DisplayServerEnums::WINDOW_FLAG_EXTEND_TO_TITLE, + FLAG_MOUSE_PASSTHROUGH = DisplayServerEnums::WINDOW_FLAG_MOUSE_PASSTHROUGH, + FLAG_SHARP_CORNERS = DisplayServerEnums::WINDOW_FLAG_SHARP_CORNERS, + FLAG_EXCLUDE_FROM_CAPTURE = DisplayServerEnums::WINDOW_FLAG_EXCLUDE_FROM_CAPTURE, + FLAG_POPUP_WM_HINT = DisplayServerEnums::WINDOW_FLAG_POPUP_WM_HINT, + FLAG_MINIMIZE_DISABLED = DisplayServerEnums::WINDOW_FLAG_MINIMIZE_DISABLED, + FLAG_MAXIMIZE_DISABLED = DisplayServerEnums::WINDOW_FLAG_MAXIMIZE_DISABLED, + FLAG_MAX = DisplayServerEnums::WINDOW_FLAG_MAX, }; enum ContentScaleMode { @@ -115,7 +115,7 @@ class Window : public Viewport { }; private: - DisplayServer::WindowID window_id = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID window_id = DisplayServerEnums::INVALID_WINDOW_ID; bool initialized = false; String title; @@ -253,7 +253,7 @@ class Window : public Viewport { void _window_input_text(const String &p_text, bool p_emit_signal = false); void _window_drop_files(const Vector &p_files); void _rect_changed_callback(const Rect2i &p_callback); - void _event_callback(DisplayServer::WindowEvent p_event); + void _event_callback(DisplayServerEnums::WindowEvent p_event); virtual bool _can_consume_input_events() const override; bool mouse_in_window = false; @@ -298,7 +298,7 @@ class Window : public Viewport { }; static void set_root_layout_direction(int p_root_dir); - static Window *get_from_id(DisplayServer::WindowID p_window_id); + static Window *get_from_id(DisplayServerEnums::WindowID p_window_id); RID get_accessibility_element() const override; virtual RID get_focused_accessibility_element() const override; @@ -349,7 +349,7 @@ class Window : public Viewport { void request_attention(); void set_taskbar_progress_value(float p_value); - void set_taskbar_progress_state(DisplayServer::ProgressState p_state); + void set_taskbar_progress_state(DisplayServerEnums::ProgressState p_state); #ifndef DISABLE_DEPRECATED void move_to_foreground(); #endif // DISABLE_DEPRECATED @@ -441,7 +441,7 @@ class Window : public Viewport { bool has_focus_or_active_popup() const; void start_drag(); - void start_resize(DisplayServer::WindowResizeEdge p_edge); + void start_resize(DisplayServerEnums::WindowResizeEdge p_edge); Rect2i get_usable_parent_rect() const; @@ -535,7 +535,7 @@ class Window : public Viewport { virtual bool is_attached_in_viewport() const override; Rect2i get_parent_rect() const; - virtual DisplayServer::WindowID get_window_id() const override; + virtual DisplayServerEnums::WindowID get_window_id() const override; static Window *get_focused_window() { return focused_window; } virtual Size2 _get_contents_minimum_size() const; diff --git a/scene/register_scene_types.cpp b/scene/register_scene_types.cpp index 5664b997f7e0..96b2ed47557e 100644 --- a/scene/register_scene_types.cpp +++ b/scene/register_scene_types.cpp @@ -164,6 +164,7 @@ #include "scene/resources/visual_shader_particle_nodes.h" #include "scene/resources/visual_shader_sdf_nodes.h" #include "scene/theme/theme_db.h" +#include "servers/display/display_server.h" #include "servers/rendering/rendering_server.h" #ifndef DISABLE_DEPRECATED diff --git a/scene/resources/2d/skeleton/skeleton_modification_2d_physicalbones.cpp b/scene/resources/2d/skeleton/skeleton_modification_2d_physicalbones.cpp index b386046ad87e..2de77f0717cf 100644 --- a/scene/resources/2d/skeleton/skeleton_modification_2d_physicalbones.cpp +++ b/scene/resources/2d/skeleton/skeleton_modification_2d_physicalbones.cpp @@ -30,6 +30,7 @@ #include "skeleton_modification_2d_physicalbones.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "scene/2d/physics/physical_bone_2d.h" #include "scene/2d/skeleton_2d.h" diff --git a/scene/resources/3d/mesh_library.cpp b/scene/resources/3d/mesh_library.cpp index d6154bc3543d..766867fdbbbb 100644 --- a/scene/resources/3d/mesh_library.cpp +++ b/scene/resources/3d/mesh_library.cpp @@ -32,7 +32,7 @@ #include "core/object/class_db.h" #include "scene/resources/texture.h" -#include "servers/rendering/rendering_server.h" // IWYU pragma: Needed to bind RSE enums. +#include "servers/rendering/rendering_server.h" // IWYU pragma: keep // Needed to bind RSE enums. #ifndef PHYSICS_3D_DISABLED #include "box_shape_3d.h" diff --git a/scene/resources/camera_attributes.cpp b/scene/resources/camera_attributes.cpp index e6efdd1ab3a7..c94df3135b3a 100644 --- a/scene/resources/camera_attributes.cpp +++ b/scene/resources/camera_attributes.cpp @@ -30,8 +30,10 @@ #include "camera_attributes.h" +#include "core/config/engine.h" #include "core/config/project_settings.h" #include "core/object/class_db.h" +#include "core/os/os.h" #include "servers/rendering/rendering_server.h" void CameraAttributes::set_exposure_multiplier(float p_multiplier) { diff --git a/scene/resources/style_box_flat.cpp b/scene/resources/style_box_flat.cpp index c5901f3f2643..bdadab21c70d 100644 --- a/scene/resources/style_box_flat.cpp +++ b/scene/resources/style_box_flat.cpp @@ -30,6 +30,7 @@ #include "style_box_flat.h" +#include "core/config/engine.h" #include "core/object/class_db.h" #include "scene/main/canvas_item.h" #include "scene/main/viewport.h" diff --git a/servers/display/accessibility_server.h b/servers/display/accessibility_server.h index 15d3c10cbf90..d54292bf2fc0 100644 --- a/servers/display/accessibility_server.h +++ b/servers/display/accessibility_server.h @@ -31,8 +31,9 @@ #pragma once #include "core/object/object.h" +#include "core/variant/binder_common.h" #include "servers/display/accessibility_server_enums.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" class AccessibilityServer : public Object { GDCLASS(AccessibilityServer, Object) @@ -66,10 +67,10 @@ class AccessibilityServer : public Object { virtual bool is_supported() const { return false; } - virtual bool window_create(DisplayServer::WindowID p_window_id, void *p_handle) = 0; - virtual void window_destroy(DisplayServer::WindowID p_window_id) = 0; + virtual bool window_create(DisplayServerEnums::WindowID p_window_id, void *p_handle) = 0; + virtual void window_destroy(DisplayServerEnums::WindowID p_window_id) = 0; - virtual RID create_element(DisplayServer::WindowID p_window_id, AccessibilityServerEnums::AccessibilityRole p_role) = 0; + virtual RID create_element(DisplayServerEnums::WindowID p_window_id, AccessibilityServerEnums::AccessibilityRole p_role) = 0; virtual RID create_sub_element(const RID &p_parent_rid, AccessibilityServerEnums::AccessibilityRole p_role, int p_insert_pos = -1) = 0; virtual RID create_sub_text_edit_elements(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos = -1, bool p_is_last_line = false) = 0; virtual bool has_element(const RID &p_id) const = 0; @@ -80,14 +81,14 @@ class AccessibilityServer : public Object { virtual void update_if_active(const Callable &p_callable) = 0; - virtual RID get_window_root(DisplayServer::WindowID p_window_id) const = 0; + virtual RID get_window_root(DisplayServerEnums::WindowID p_window_id) const = 0; virtual void update_set_focus(const RID &p_id) = 0; - virtual void set_window_rect(DisplayServer::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) = 0; - virtual void set_window_focused(DisplayServer::WindowID p_window_id, bool p_focused) = 0; - virtual void set_window_callbacks(DisplayServer::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) = 0; - virtual void window_activation_completed(DisplayServer::WindowID p_window_id) = 0; - virtual void window_deactivation_completed(DisplayServer::WindowID p_window_id) = 0; + virtual void set_window_rect(DisplayServerEnums::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) = 0; + virtual void set_window_focused(DisplayServerEnums::WindowID p_window_id, bool p_focused) = 0; + virtual void set_window_callbacks(DisplayServerEnums::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) = 0; + virtual void window_activation_completed(DisplayServerEnums::WindowID p_window_id) = 0; + virtual void window_deactivation_completed(DisplayServerEnums::WindowID p_window_id) = 0; virtual void update_set_role(const RID &p_id, AccessibilityServerEnums::AccessibilityRole p_role) = 0; virtual void update_set_name(const RID &p_id, const String &p_name) = 0; diff --git a/servers/display/accessibility_server_dummy.h b/servers/display/accessibility_server_dummy.h index ce56032ec7e5..55a837eccc89 100644 --- a/servers/display/accessibility_server_dummy.h +++ b/servers/display/accessibility_server_dummy.h @@ -43,10 +43,10 @@ class AccessibilityServerDummy : public AccessibilityServer { } public: - virtual bool window_create(DisplayServer::WindowID p_window_id, void *p_handle) override { return true; } - virtual void window_destroy(DisplayServer::WindowID p_window_id) override {} + virtual bool window_create(DisplayServerEnums::WindowID p_window_id, void *p_handle) override { return true; } + virtual void window_destroy(DisplayServerEnums::WindowID p_window_id) override {} - virtual RID create_element(DisplayServer::WindowID p_window_id, AccessibilityServerEnums::AccessibilityRole p_role) override { return RID(); } + virtual RID create_element(DisplayServerEnums::WindowID p_window_id, AccessibilityServerEnums::AccessibilityRole p_role) override { return RID(); } virtual RID create_sub_element(const RID &p_parent_rid, AccessibilityServerEnums::AccessibilityRole p_role, int p_insert_pos = -1) override { return RID(); } virtual RID create_sub_text_edit_elements(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos = -1, bool p_is_last_line = false) override { return RID(); } virtual bool has_element(const RID &p_id) const override { return false; } @@ -57,14 +57,14 @@ class AccessibilityServerDummy : public AccessibilityServer { virtual void update_if_active(const Callable &p_callable) override {} - virtual RID get_window_root(DisplayServer::WindowID p_window_id) const override { return RID(); } + virtual RID get_window_root(DisplayServerEnums::WindowID p_window_id) const override { return RID(); } virtual void update_set_focus(const RID &p_id) override {} - virtual void set_window_rect(DisplayServer::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) override {} - virtual void set_window_focused(DisplayServer::WindowID p_window_id, bool p_focused) override {} - virtual void set_window_callbacks(DisplayServer::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) override {} - virtual void window_activation_completed(DisplayServer::WindowID p_window_id) override {} - virtual void window_deactivation_completed(DisplayServer::WindowID p_window_id) override {} + virtual void set_window_rect(DisplayServerEnums::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) override {} + virtual void set_window_focused(DisplayServerEnums::WindowID p_window_id, bool p_focused) override {} + virtual void set_window_callbacks(DisplayServerEnums::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) override {} + virtual void window_activation_completed(DisplayServerEnums::WindowID p_window_id) override {} + virtual void window_deactivation_completed(DisplayServerEnums::WindowID p_window_id) override {} virtual void update_set_role(const RID &p_id, AccessibilityServerEnums::AccessibilityRole p_role) override {} virtual void update_set_name(const RID &p_id, const String &p_name) override {} diff --git a/servers/display/display_server.compat.inc b/servers/display/display_server.compat.inc index f0a49cc1de32..233fb0398696 100644 --- a/servers/display/display_server.compat.inc +++ b/servers/display/display_server.compat.inc @@ -34,12 +34,12 @@ #include "core/object/class_db.h" -Error DisplayServer::_file_dialog_show_bind_compat_98194(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback) { - return file_dialog_show(p_title, p_current_directory, p_filename, p_show_hidden, p_mode, p_filters, p_callback, MAIN_WINDOW_ID); +Error DisplayServer::_file_dialog_show_bind_compat_98194(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback) { + return file_dialog_show(p_title, p_current_directory, p_filename, p_show_hidden, p_mode, p_filters, p_callback, DisplayServerEnums::MAIN_WINDOW_ID); } -Error DisplayServer::_file_dialog_with_options_show_bind_compat_98194(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback) { - return file_dialog_with_options_show(p_title, p_current_directory, p_root, p_filename, p_show_hidden, p_mode, p_filters, p_options, p_callback, MAIN_WINDOW_ID); +Error DisplayServer::_file_dialog_with_options_show_bind_compat_98194(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback) { + return file_dialog_with_options_show(p_title, p_current_directory, p_root, p_filename, p_show_hidden, p_mode, p_filters, p_options, p_callback, DisplayServerEnums::MAIN_WINDOW_ID); } RID DisplayServer::_accessibility_create_sub_text_edit_elements_bind_compat_113459(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos) { diff --git a/servers/display/display_server.cpp b/servers/display/display_server.cpp index 033c3f9f94b1..89b835ecf5be 100644 --- a/servers/display/display_server.cpp +++ b/servers/display/display_server.cpp @@ -60,8 +60,6 @@ STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer); DisplayServer *DisplayServer::singleton = nullptr; -bool DisplayServer::hidpi_allowed = false; - bool DisplayServer::window_early_clear_override_enabled = false; Color DisplayServer::window_early_clear_override_color = Color(0, 0, 0, 0); @@ -464,22 +462,22 @@ void DisplayServer::tts_stop() { WARN_PRINT("TTS is not supported by this display server."); } -void DisplayServer::tts_set_utterance_callback(TTSUtteranceEvent p_event, const Callable &p_callable) { - ERR_FAIL_INDEX(p_event, DisplayServer::TTS_UTTERANCE_MAX); +void DisplayServer::tts_set_utterance_callback(DisplayServerEnums::TTSUtteranceEvent p_event, const Callable &p_callable) { + ERR_FAIL_INDEX(p_event, DisplayServerEnums::TTS_UTTERANCE_MAX); utterance_callback[p_event] = p_callable; } -void DisplayServer::tts_post_utterance_event(TTSUtteranceEvent p_event, int64_t p_id, int p_pos) { - ERR_FAIL_INDEX(p_event, DisplayServer::TTS_UTTERANCE_MAX); +void DisplayServer::tts_post_utterance_event(DisplayServerEnums::TTSUtteranceEvent p_event, int64_t p_id, int p_pos) { + ERR_FAIL_INDEX(p_event, DisplayServerEnums::TTS_UTTERANCE_MAX); switch (p_event) { - case DisplayServer::TTS_UTTERANCE_STARTED: - case DisplayServer::TTS_UTTERANCE_ENDED: - case DisplayServer::TTS_UTTERANCE_CANCELED: { + case DisplayServerEnums::TTS_UTTERANCE_STARTED: + case DisplayServerEnums::TTS_UTTERANCE_ENDED: + case DisplayServerEnums::TTS_UTTERANCE_CANCELED: { if (utterance_callback[p_event].is_valid()) { utterance_callback[p_event].call_deferred(p_id); // Should be deferred, on some platforms utterance events can be called from different threads in a rapid succession. } } break; - case DisplayServer::TTS_UTTERANCE_BOUNDARY: { + case DisplayServerEnums::TTS_UTTERANCE_BOUNDARY: { if (utterance_callback[p_event].is_valid()) { utterance_callback[p_event].call_deferred(p_pos, p_id); // Should be deferred, on some platforms utterance events can be called from different threads in a rapid succession. } @@ -506,20 +504,20 @@ void DisplayServer::set_early_window_clear_color_override(bool p_enabled, Color window_early_clear_override_color = p_color; } -void DisplayServer::mouse_set_mode(MouseMode p_mode) { +void DisplayServer::mouse_set_mode(DisplayServerEnums::MouseMode p_mode) { WARN_PRINT("Mouse is not supported by this display server."); } -DisplayServer::MouseMode DisplayServer::mouse_get_mode() const { - return MOUSE_MODE_VISIBLE; +DisplayServerEnums::MouseMode DisplayServer::mouse_get_mode() const { + return DisplayServerEnums::MOUSE_MODE_VISIBLE; } -void DisplayServer::mouse_set_mode_override(MouseMode p_mode) { +void DisplayServer::mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) { WARN_PRINT("Mouse is not supported by this display server."); } -DisplayServer::MouseMode DisplayServer::mouse_get_mode_override() const { - return MOUSE_MODE_VISIBLE; +DisplayServerEnums::MouseMode DisplayServer::mouse_get_mode_override() const { + return DisplayServerEnums::MOUSE_MODE_VISIBLE; } void DisplayServer::mouse_set_mode_override_enabled(bool p_override_enabled) { @@ -569,12 +567,12 @@ String DisplayServer::clipboard_get_primary() const { ERR_FAIL_V_MSG(String(), "Primary clipboard is not supported by this display server."); } -void DisplayServer::screen_set_orientation(ScreenOrientation p_orientation, int p_screen) { +void DisplayServer::screen_set_orientation(DisplayServerEnums::ScreenOrientation p_orientation, int p_screen) { WARN_PRINT("Orientation not supported by this display server."); } -DisplayServer::ScreenOrientation DisplayServer::screen_get_orientation(int p_screen) const { - return SCREEN_LANDSCAPE; +DisplayServerEnums::ScreenOrientation DisplayServer::screen_get_orientation(int p_screen) const { + return DisplayServerEnums::SCREEN_LANDSCAPE; } float DisplayServer::screen_get_scale(int p_screen) const { @@ -595,7 +593,7 @@ bool DisplayServer::screen_is_kept_on() const { int DisplayServer::get_screen_from_rect(const Rect2 &p_rect) const { int nearest_area = 0; - int pos_screen = INVALID_SCREEN; + int pos_screen = DisplayServerEnums::INVALID_SCREEN; for (int i = 0; i < get_screen_count(); i++) { Rect2i r; r.position = screen_get_position(i); @@ -610,41 +608,41 @@ int DisplayServer::get_screen_from_rect(const Rect2 &p_rect) const { return pos_screen; } -DisplayServer::WindowID DisplayServer::create_sub_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, WindowID p_transient_parent) { - ERR_FAIL_V_MSG(INVALID_WINDOW_ID, "Sub-windows not supported by this display server."); +DisplayServerEnums::WindowID DisplayServer::create_sub_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect, bool p_exclusive, DisplayServerEnums::WindowID p_transient_parent) { + ERR_FAIL_V_MSG(DisplayServerEnums::INVALID_WINDOW_ID, "Sub-windows not supported by this display server."); } -void DisplayServer::show_window(WindowID p_id) { +void DisplayServer::show_window(DisplayServerEnums::WindowID p_id) { ERR_FAIL_MSG("Sub-windows not supported by this display server."); } -void DisplayServer::delete_sub_window(WindowID p_id) { +void DisplayServer::delete_sub_window(DisplayServerEnums::WindowID p_id) { ERR_FAIL_MSG("Sub-windows not supported by this display server."); } -void DisplayServer::window_set_exclusive(WindowID p_window, bool p_exclusive) { +void DisplayServer::window_set_exclusive(DisplayServerEnums::WindowID p_window, bool p_exclusive) { // Do nothing, if not supported. } -void DisplayServer::window_set_mouse_passthrough(const Vector &p_region, WindowID p_window) { +void DisplayServer::window_set_mouse_passthrough(const Vector &p_region, DisplayServerEnums::WindowID p_window) { ERR_FAIL_MSG("Mouse passthrough not supported by this display server."); } -void DisplayServer::gl_window_make_current(DisplayServer::WindowID p_window_id) { +void DisplayServer::gl_window_make_current(DisplayServerEnums::WindowID p_window_id) { // noop except in gles } -void DisplayServer::window_set_ime_active(const bool p_active, WindowID p_window) { +void DisplayServer::window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window) { WARN_PRINT("IME not supported by this display server."); } -void DisplayServer::window_set_ime_position(const Point2i &p_pos, WindowID p_window) { +void DisplayServer::window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window) { WARN_PRINT("IME not supported by this display server."); } #ifndef DISABLE_DEPRECATED -RID DisplayServer::accessibility_create_element(WindowID p_window, AccessibilityRole p_role) { +RID DisplayServer::accessibility_create_element(DisplayServerEnums::WindowID p_window, DisplayServerEnums::AccessibilityRole p_role) { if (AccessibilityServer::get_singleton()) { return AccessibilityServer::get_singleton()->create_element(p_window, (AccessibilityServerEnums::AccessibilityRole)p_role); } else { @@ -652,7 +650,7 @@ RID DisplayServer::accessibility_create_element(WindowID p_window, Accessibility } } -RID DisplayServer::accessibility_create_sub_element(const RID &p_parent_rid, AccessibilityRole p_role, int p_insert_pos) { +RID DisplayServer::accessibility_create_sub_element(const RID &p_parent_rid, DisplayServerEnums::AccessibilityRole p_role, int p_insert_pos) { if (AccessibilityServer::get_singleton()) { return AccessibilityServer::get_singleton()->create_sub_element(p_parent_rid, (AccessibilityServerEnums::AccessibilityRole)p_role, p_insert_pos); } else { @@ -708,7 +706,7 @@ void DisplayServer::accessibility_update_set_focus(const RID &p_id) { } } -RID DisplayServer::accessibility_get_window_root(DisplayServer::WindowID p_window_id) const { +RID DisplayServer::accessibility_get_window_root(DisplayServerEnums::WindowID p_window_id) const { if (AccessibilityServer::get_singleton()) { return AccessibilityServer::get_singleton()->get_window_root(p_window_id); } else { @@ -716,37 +714,37 @@ RID DisplayServer::accessibility_get_window_root(DisplayServer::WindowID p_windo } } -void DisplayServer::accessibility_set_window_rect(DisplayServer::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) { +void DisplayServer::accessibility_set_window_rect(DisplayServerEnums::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in) { if (AccessibilityServer::get_singleton()) { AccessibilityServer::get_singleton()->set_window_rect(p_window_id, p_rect_out, p_rect_in); } } -void DisplayServer::accessibility_set_window_focused(DisplayServer::WindowID p_window_id, bool p_focused) { +void DisplayServer::accessibility_set_window_focused(DisplayServerEnums::WindowID p_window_id, bool p_focused) { if (AccessibilityServer::get_singleton()) { AccessibilityServer::get_singleton()->set_window_focused(p_window_id, p_focused); } } -void DisplayServer::accessibility_set_window_callbacks(DisplayServer::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) { +void DisplayServer::accessibility_set_window_callbacks(DisplayServerEnums::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable) { if (AccessibilityServer::get_singleton()) { AccessibilityServer::get_singleton()->set_window_callbacks(p_window_id, p_activate_callable, p_deativate_callable); } } -void DisplayServer::accessibility_window_activation_completed(DisplayServer::WindowID p_window_id) { +void DisplayServer::accessibility_window_activation_completed(DisplayServerEnums::WindowID p_window_id) { if (AccessibilityServer::get_singleton()) { AccessibilityServer::get_singleton()->window_activation_completed(p_window_id); } } -void DisplayServer::accessibility_window_deactivation_completed(DisplayServer::WindowID p_window_id) { +void DisplayServer::accessibility_window_deactivation_completed(DisplayServerEnums::WindowID p_window_id) { if (AccessibilityServer::get_singleton()) { AccessibilityServer::get_singleton()->window_deactivation_completed(p_window_id); } } -void DisplayServer::accessibility_update_set_role(const RID &p_id, AccessibilityRole p_role) { +void DisplayServer::accessibility_update_set_role(const RID &p_id, DisplayServerEnums::AccessibilityRole p_role) { if (AccessibilityServer::get_singleton()) { AccessibilityServer::get_singleton()->update_set_role(p_id, (AccessibilityServerEnums::AccessibilityRole)p_role); } @@ -872,13 +870,13 @@ void DisplayServer::accessibility_update_set_error_message(const RID &p_id, cons } } -void DisplayServer::accessibility_update_set_live(const RID &p_id, AccessibilityLiveMode p_live) { +void DisplayServer::accessibility_update_set_live(const RID &p_id, DisplayServerEnums::AccessibilityLiveMode p_live) { if (AccessibilityServer::get_singleton()) { AccessibilityServer::get_singleton()->update_set_live(p_id, (AccessibilityServerEnums::AccessibilityLiveMode)p_live); } } -void DisplayServer::accessibility_update_add_action(const RID &p_id, AccessibilityAction p_action, const Callable &p_callable) { +void DisplayServer::accessibility_update_add_action(const RID &p_id, DisplayServerEnums::AccessibilityAction p_action, const Callable &p_callable) { if (AccessibilityServer::get_singleton()) { AccessibilityServer::get_singleton()->update_add_action(p_id, (AccessibilityServerEnums::AccessibilityAction)p_action, p_callable); } @@ -956,7 +954,7 @@ void DisplayServer::accessibility_update_set_list_item_expanded(const RID &p_id, } } -void DisplayServer::accessibility_update_set_popup_type(const RID &p_id, AccessibilityPopupType p_popup) { +void DisplayServer::accessibility_update_set_popup_type(const RID &p_id, DisplayServerEnums::AccessibilityPopupType p_popup) { if (AccessibilityServer::get_singleton()) { AccessibilityServer::get_singleton()->update_set_popup_type(p_id, (AccessibilityServerEnums::AccessibilityPopupType)p_popup); } @@ -1034,7 +1032,7 @@ void DisplayServer::accessibility_update_set_text_selection(const RID &p_id, con } } -void DisplayServer::accessibility_update_set_flag(const RID &p_id, AccessibilityFlags p_flag, bool p_value) { +void DisplayServer::accessibility_update_set_flag(const RID &p_id, DisplayServerEnums::AccessibilityFlags p_flag, bool p_value) { if (AccessibilityServer::get_singleton()) { AccessibilityServer::get_singleton()->update_set_flag(p_id, (AccessibilityServerEnums::AccessibilityFlags)p_flag, p_value); } @@ -1122,7 +1120,7 @@ String DisplayServer::ime_get_text() const { ERR_FAIL_V_MSG(String(), "IME or NOTIFICATION_WM_IME_UPDATE not supported by this display server."); } -void DisplayServer::virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect, VirtualKeyboardType p_type, int p_max_length, int p_cursor_start, int p_cursor_end) { +void DisplayServer::virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect, DisplayServerEnums::VirtualKeyboardType p_type, int p_max_length, int p_cursor_start, int p_cursor_end) { WARN_PRINT("Virtual keyboard not supported by this display server."); } @@ -1140,15 +1138,15 @@ bool DisplayServer::has_hardware_keyboard() const { return true; } -void DisplayServer::cursor_set_shape(CursorShape p_shape) { +void DisplayServer::cursor_set_shape(DisplayServerEnums::CursorShape p_shape) { WARN_PRINT("Cursor shape not supported by this display server."); } -DisplayServer::CursorShape DisplayServer::cursor_get_shape() const { - return CURSOR_ARROW; +DisplayServerEnums::CursorShape DisplayServer::cursor_get_shape() const { + return DisplayServerEnums::CURSOR_ARROW; } -void DisplayServer::cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot) { +void DisplayServer::cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape, const Vector2 &p_hotspot) { WARN_PRINT("Custom cursor shape not supported by this display server."); } @@ -1159,7 +1157,7 @@ bool DisplayServer::get_swap_cancel_ok() { void DisplayServer::enable_for_stealing_focus(OS::ProcessID pid) { } -Error DisplayServer::embed_process(WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) { +Error DisplayServer::embed_process(DisplayServerEnums::WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus) { WARN_PRINT("Embedded process not supported by this display server."); return ERR_UNAVAILABLE; } @@ -1189,12 +1187,12 @@ Error DisplayServer::dialog_input_text(String p_title, String p_description, Str return ERR_UNAVAILABLE; } -Error DisplayServer::file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, WindowID p_window_id) { +Error DisplayServer::file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) { WARN_PRINT("Native dialogs not supported by this display server."); return ERR_UNAVAILABLE; } -Error DisplayServer::file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, WindowID p_window_id) { +Error DisplayServer::file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) { WARN_PRINT("Native dialogs not supported by this display server."); return ERR_UNAVAILABLE; } @@ -1255,101 +1253,101 @@ void DisplayServer::set_icon(const Ref &p_icon) { WARN_PRINT("Icon not supported by this display server."); } -DisplayServer::IndicatorID DisplayServer::create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback) { +DisplayServerEnums::IndicatorID DisplayServer::create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback) { WARN_PRINT("Status indicator not supported by this display server."); - return INVALID_INDICATOR_ID; + return DisplayServerEnums::INVALID_INDICATOR_ID; } -void DisplayServer::status_indicator_set_icon(IndicatorID p_id, const Ref &p_icon) { +void DisplayServer::status_indicator_set_icon(DisplayServerEnums::IndicatorID p_id, const Ref &p_icon) { WARN_PRINT("Status indicator not supported by this display server."); } -void DisplayServer::status_indicator_set_tooltip(IndicatorID p_id, const String &p_tooltip) { +void DisplayServer::status_indicator_set_tooltip(DisplayServerEnums::IndicatorID p_id, const String &p_tooltip) { WARN_PRINT("Status indicator not supported by this display server."); } -void DisplayServer::status_indicator_set_menu(IndicatorID p_id, const RID &p_menu_rid) { +void DisplayServer::status_indicator_set_menu(DisplayServerEnums::IndicatorID p_id, const RID &p_menu_rid) { WARN_PRINT("Status indicator not supported by this display server."); } -void DisplayServer::status_indicator_set_callback(IndicatorID p_id, const Callable &p_callback) { +void DisplayServer::status_indicator_set_callback(DisplayServerEnums::IndicatorID p_id, const Callable &p_callback) { WARN_PRINT("Status indicator not supported by this display server."); } -Rect2 DisplayServer::status_indicator_get_rect(IndicatorID p_id) const { +Rect2 DisplayServer::status_indicator_get_rect(DisplayServerEnums::IndicatorID p_id) const { WARN_PRINT("Status indicator not supported by this display server."); return Rect2(); } -void DisplayServer::delete_status_indicator(IndicatorID p_id) { +void DisplayServer::delete_status_indicator(DisplayServerEnums::IndicatorID p_id) { WARN_PRINT("Status indicator not supported by this display server."); } -int64_t DisplayServer::window_get_native_handle(HandleType p_handle_type, WindowID p_window) const { +int64_t DisplayServer::window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window) const { WARN_PRINT("Native handle not supported by this display server."); return 0; } -void DisplayServer::window_set_vsync_mode(DisplayServer::VSyncMode p_vsync_mode, WindowID p_window) { +void DisplayServer::window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window) { WARN_PRINT("Changing the V-Sync mode is not supported by this display server."); } -DisplayServer::VSyncMode DisplayServer::window_get_vsync_mode(WindowID p_window) const { +DisplayServerEnums::VSyncMode DisplayServer::window_get_vsync_mode(DisplayServerEnums::WindowID p_window) const { WARN_PRINT("Changing the V-Sync mode is not supported by this display server."); - return VSyncMode::VSYNC_ENABLED; + return DisplayServerEnums::VSyncMode::VSYNC_ENABLED; } -bool DisplayServer::window_is_hdr_output_supported(WindowID p_window) const { +bool DisplayServer::window_is_hdr_output_supported(DisplayServerEnums::WindowID p_window) const { return false; } -void DisplayServer::window_request_hdr_output(const bool p_enable, WindowID p_window) { +void DisplayServer::window_request_hdr_output(const bool p_enable, DisplayServerEnums::WindowID p_window) { if (p_enable) { WARN_PRINT_ED("HDR output is not supported by this display server."); } } -bool DisplayServer::window_is_hdr_output_requested(WindowID p_window) const { +bool DisplayServer::window_is_hdr_output_requested(DisplayServerEnums::WindowID p_window) const { return false; } -bool DisplayServer::window_is_hdr_output_enabled(WindowID p_window) const { +bool DisplayServer::window_is_hdr_output_enabled(DisplayServerEnums::WindowID p_window) const { return false; } -void DisplayServer::window_set_hdr_output_reference_luminance(const float p_reference_luminance, WindowID p_window) { +void DisplayServer::window_set_hdr_output_reference_luminance(const float p_reference_luminance, DisplayServerEnums::WindowID p_window) { WARN_PRINT_ED("HDR output is not supported by this display server."); } -float DisplayServer::window_get_hdr_output_reference_luminance(WindowID p_window) const { +float DisplayServer::window_get_hdr_output_reference_luminance(DisplayServerEnums::WindowID p_window) const { return -1.0f; } -float DisplayServer::window_get_hdr_output_current_reference_luminance(WindowID p_window) const { +float DisplayServer::window_get_hdr_output_current_reference_luminance(DisplayServerEnums::WindowID p_window) const { return 0.0f; } -void DisplayServer::window_set_hdr_output_max_luminance(const float p_max_luminance, WindowID p_window) { +void DisplayServer::window_set_hdr_output_max_luminance(const float p_max_luminance, DisplayServerEnums::WindowID p_window) { WARN_PRINT_ED("HDR output is not supported by this display server."); } -float DisplayServer::window_get_hdr_output_max_luminance(WindowID p_window) const { +float DisplayServer::window_get_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window) const { return -1.0f; } -float DisplayServer::window_get_hdr_output_current_max_luminance(WindowID p_window) const { +float DisplayServer::window_get_hdr_output_current_max_luminance(DisplayServerEnums::WindowID p_window) const { return 0.0f; } -float DisplayServer::window_get_output_max_linear_value(WindowID p_window) const { +float DisplayServer::window_get_output_max_linear_value(DisplayServerEnums::WindowID p_window) const { return 1.0f; } -DisplayServer::WindowID DisplayServer::get_focused_window() const { - return MAIN_WINDOW_ID; // Proper value for single windows. +DisplayServerEnums::WindowID DisplayServer::get_focused_window() const { + return DisplayServerEnums::MAIN_WINDOW_ID; // Proper value for single windows. } -void DisplayServer::set_context(Context p_context) { +void DisplayServer::set_context(DisplayServerEnums::Context p_context) { } void DisplayServer::register_additional_output(Object *p_object) { @@ -1470,20 +1468,20 @@ void DisplayServer::_bind_methods() { ClassDB::bind_method(D_METHOD("get_primary_screen"), &DisplayServer::get_primary_screen); ClassDB::bind_method(D_METHOD("get_keyboard_focus_screen"), &DisplayServer::get_keyboard_focus_screen); ClassDB::bind_method(D_METHOD("get_screen_from_rect", "rect"), &DisplayServer::get_screen_from_rect); - ClassDB::bind_method(D_METHOD("screen_get_position", "screen"), &DisplayServer::screen_get_position, DEFVAL(SCREEN_OF_MAIN_WINDOW)); - ClassDB::bind_method(D_METHOD("screen_get_size", "screen"), &DisplayServer::screen_get_size, DEFVAL(SCREEN_OF_MAIN_WINDOW)); - ClassDB::bind_method(D_METHOD("screen_get_usable_rect", "screen"), &DisplayServer::screen_get_usable_rect, DEFVAL(SCREEN_OF_MAIN_WINDOW)); - ClassDB::bind_method(D_METHOD("screen_get_dpi", "screen"), &DisplayServer::screen_get_dpi, DEFVAL(SCREEN_OF_MAIN_WINDOW)); - ClassDB::bind_method(D_METHOD("screen_get_scale", "screen"), &DisplayServer::screen_get_scale, DEFVAL(SCREEN_OF_MAIN_WINDOW)); + ClassDB::bind_method(D_METHOD("screen_get_position", "screen"), &DisplayServer::screen_get_position, DEFVAL(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW)); + ClassDB::bind_method(D_METHOD("screen_get_size", "screen"), &DisplayServer::screen_get_size, DEFVAL(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW)); + ClassDB::bind_method(D_METHOD("screen_get_usable_rect", "screen"), &DisplayServer::screen_get_usable_rect, DEFVAL(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW)); + ClassDB::bind_method(D_METHOD("screen_get_dpi", "screen"), &DisplayServer::screen_get_dpi, DEFVAL(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW)); + ClassDB::bind_method(D_METHOD("screen_get_scale", "screen"), &DisplayServer::screen_get_scale, DEFVAL(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW)); ClassDB::bind_method(D_METHOD("is_touchscreen_available"), &DisplayServer::is_touchscreen_available); ClassDB::bind_method(D_METHOD("screen_get_max_scale"), &DisplayServer::screen_get_max_scale); - ClassDB::bind_method(D_METHOD("screen_get_refresh_rate", "screen"), &DisplayServer::screen_get_refresh_rate, DEFVAL(SCREEN_OF_MAIN_WINDOW)); + ClassDB::bind_method(D_METHOD("screen_get_refresh_rate", "screen"), &DisplayServer::screen_get_refresh_rate, DEFVAL(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW)); ClassDB::bind_method(D_METHOD("screen_get_pixel", "position"), &DisplayServer::screen_get_pixel); - ClassDB::bind_method(D_METHOD("screen_get_image", "screen"), &DisplayServer::screen_get_image, DEFVAL(SCREEN_OF_MAIN_WINDOW)); + ClassDB::bind_method(D_METHOD("screen_get_image", "screen"), &DisplayServer::screen_get_image, DEFVAL(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW)); ClassDB::bind_method(D_METHOD("screen_get_image_rect", "rect"), &DisplayServer::screen_get_image_rect); - ClassDB::bind_method(D_METHOD("screen_set_orientation", "orientation", "screen"), &DisplayServer::screen_set_orientation, DEFVAL(SCREEN_OF_MAIN_WINDOW)); - ClassDB::bind_method(D_METHOD("screen_get_orientation", "screen"), &DisplayServer::screen_get_orientation, DEFVAL(SCREEN_OF_MAIN_WINDOW)); + ClassDB::bind_method(D_METHOD("screen_set_orientation", "orientation", "screen"), &DisplayServer::screen_set_orientation, DEFVAL(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW)); + ClassDB::bind_method(D_METHOD("screen_get_orientation", "screen"), &DisplayServer::screen_get_orientation, DEFVAL(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW)); ClassDB::bind_method(D_METHOD("screen_set_keep_on", "enable"), &DisplayServer::screen_set_keep_on); ClassDB::bind_method(D_METHOD("screen_is_kept_on"), &DisplayServer::screen_is_kept_on); @@ -1491,88 +1489,88 @@ void DisplayServer::_bind_methods() { ClassDB::bind_method(D_METHOD("get_window_list"), &DisplayServer::get_window_list); ClassDB::bind_method(D_METHOD("get_window_at_screen_position", "position"), &DisplayServer::get_window_at_screen_position); - ClassDB::bind_method(D_METHOD("window_get_native_handle", "handle_type", "window_id"), &DisplayServer::window_get_native_handle, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_native_handle", "handle_type", "window_id"), &DisplayServer::window_get_native_handle, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); ClassDB::bind_method(D_METHOD("window_get_active_popup"), &DisplayServer::window_get_active_popup); ClassDB::bind_method(D_METHOD("window_set_popup_safe_rect", "window", "rect"), &DisplayServer::window_set_popup_safe_rect); ClassDB::bind_method(D_METHOD("window_get_popup_safe_rect", "window"), &DisplayServer::window_get_popup_safe_rect); - ClassDB::bind_method(D_METHOD("window_set_title", "title", "window_id"), &DisplayServer::window_set_title, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_title_size", "title", "window_id"), &DisplayServer::window_get_title_size, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_mouse_passthrough", "region", "window_id"), &DisplayServer::window_set_mouse_passthrough, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_title", "title", "window_id"), &DisplayServer::window_set_title, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_title_size", "title", "window_id"), &DisplayServer::window_get_title_size, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_mouse_passthrough", "region", "window_id"), &DisplayServer::window_set_mouse_passthrough, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_current_screen", "window_id"), &DisplayServer::window_get_current_screen, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_current_screen", "screen", "window_id"), &DisplayServer::window_set_current_screen, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_current_screen", "window_id"), &DisplayServer::window_get_current_screen, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_current_screen", "screen", "window_id"), &DisplayServer::window_set_current_screen, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_position", "window_id"), &DisplayServer::window_get_position, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_position_with_decorations", "window_id"), &DisplayServer::window_get_position_with_decorations, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_position", "position", "window_id"), &DisplayServer::window_set_position, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_position", "window_id"), &DisplayServer::window_get_position, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_position_with_decorations", "window_id"), &DisplayServer::window_get_position_with_decorations, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_position", "position", "window_id"), &DisplayServer::window_set_position, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_size", "window_id"), &DisplayServer::window_get_size, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_size", "size", "window_id"), &DisplayServer::window_set_size, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_rect_changed_callback", "callback", "window_id"), &DisplayServer::window_set_rect_changed_callback, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_window_event_callback", "callback", "window_id"), &DisplayServer::window_set_window_event_callback, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_input_event_callback", "callback", "window_id"), &DisplayServer::window_set_input_event_callback, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_input_text_callback", "callback", "window_id"), &DisplayServer::window_set_input_text_callback, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_drop_files_callback", "callback", "window_id"), &DisplayServer::window_set_drop_files_callback, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_size", "window_id"), &DisplayServer::window_get_size, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_size", "size", "window_id"), &DisplayServer::window_set_size, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_rect_changed_callback", "callback", "window_id"), &DisplayServer::window_set_rect_changed_callback, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_window_event_callback", "callback", "window_id"), &DisplayServer::window_set_window_event_callback, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_input_event_callback", "callback", "window_id"), &DisplayServer::window_set_input_event_callback, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_input_text_callback", "callback", "window_id"), &DisplayServer::window_set_input_text_callback, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_drop_files_callback", "callback", "window_id"), &DisplayServer::window_set_drop_files_callback, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_attached_instance_id", "window_id"), &DisplayServer::window_get_attached_instance_id, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_attached_instance_id", "window_id"), &DisplayServer::window_get_attached_instance_id, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_max_size", "window_id"), &DisplayServer::window_get_max_size, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_max_size", "max_size", "window_id"), &DisplayServer::window_set_max_size, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_max_size", "window_id"), &DisplayServer::window_get_max_size, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_max_size", "max_size", "window_id"), &DisplayServer::window_set_max_size, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_min_size", "window_id"), &DisplayServer::window_get_min_size, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_min_size", "min_size", "window_id"), &DisplayServer::window_set_min_size, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_min_size", "window_id"), &DisplayServer::window_get_min_size, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_min_size", "min_size", "window_id"), &DisplayServer::window_set_min_size, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_size_with_decorations", "window_id"), &DisplayServer::window_get_size_with_decorations, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_size_with_decorations", "window_id"), &DisplayServer::window_get_size_with_decorations, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_mode", "window_id"), &DisplayServer::window_get_mode, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_mode", "mode", "window_id"), &DisplayServer::window_set_mode, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_mode", "window_id"), &DisplayServer::window_get_mode, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_mode", "mode", "window_id"), &DisplayServer::window_set_mode, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_flag", "flag", "enabled", "window_id"), &DisplayServer::window_set_flag, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_flag", "flag", "window_id"), &DisplayServer::window_get_flag, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_flag", "flag", "enabled", "window_id"), &DisplayServer::window_set_flag, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_flag", "flag", "window_id"), &DisplayServer::window_get_flag, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_window_buttons_offset", "offset", "window_id"), &DisplayServer::window_set_window_buttons_offset, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_safe_title_margins", "window_id"), &DisplayServer::window_get_safe_title_margins, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_window_buttons_offset", "offset", "window_id"), &DisplayServer::window_set_window_buttons_offset, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_safe_title_margins", "window_id"), &DisplayServer::window_get_safe_title_margins, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_request_attention", "window_id"), &DisplayServer::window_request_attention, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_taskbar_progress_value", "value", "window_id"), &DisplayServer::window_set_taskbar_progress_value, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_taskbar_progress_state", "state", "window_id"), &DisplayServer::window_set_taskbar_progress_state, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_request_attention", "window_id"), &DisplayServer::window_request_attention, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_taskbar_progress_value", "value", "window_id"), &DisplayServer::window_set_taskbar_progress_value, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_taskbar_progress_state", "state", "window_id"), &DisplayServer::window_set_taskbar_progress_state, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_move_to_foreground", "window_id"), &DisplayServer::window_move_to_foreground, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_is_focused", "window_id"), &DisplayServer::window_is_focused, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_can_draw", "window_id"), &DisplayServer::window_can_draw, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_move_to_foreground", "window_id"), &DisplayServer::window_move_to_foreground, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_is_focused", "window_id"), &DisplayServer::window_is_focused, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_can_draw", "window_id"), &DisplayServer::window_can_draw, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); ClassDB::bind_method(D_METHOD("window_set_transient", "window_id", "parent_window_id"), &DisplayServer::window_set_transient); ClassDB::bind_method(D_METHOD("window_set_exclusive", "window_id", "exclusive"), &DisplayServer::window_set_exclusive); - ClassDB::bind_method(D_METHOD("window_set_ime_active", "active", "window_id"), &DisplayServer::window_set_ime_active, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_ime_position", "position", "window_id"), &DisplayServer::window_set_ime_position, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_ime_active", "active", "window_id"), &DisplayServer::window_set_ime_active, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_ime_position", "position", "window_id"), &DisplayServer::window_set_ime_position, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_vsync_mode", "vsync_mode", "window_id"), &DisplayServer::window_set_vsync_mode, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_vsync_mode", "window_id"), &DisplayServer::window_get_vsync_mode, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_vsync_mode", "vsync_mode", "window_id"), &DisplayServer::window_set_vsync_mode, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_vsync_mode", "window_id"), &DisplayServer::window_get_vsync_mode, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_is_hdr_output_supported", "window_id"), &DisplayServer::window_is_hdr_output_supported, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_is_hdr_output_supported", "window_id"), &DisplayServer::window_is_hdr_output_supported, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_request_hdr_output", "enable", "window_id"), &DisplayServer::window_request_hdr_output, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_is_hdr_output_requested", "window_id"), &DisplayServer::window_is_hdr_output_requested, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_is_hdr_output_enabled", "window_id"), &DisplayServer::window_is_hdr_output_enabled, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_request_hdr_output", "enable", "window_id"), &DisplayServer::window_request_hdr_output, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_is_hdr_output_requested", "window_id"), &DisplayServer::window_is_hdr_output_requested, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_is_hdr_output_enabled", "window_id"), &DisplayServer::window_is_hdr_output_enabled, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_hdr_output_reference_luminance", "reference_luminance", "window_id"), &DisplayServer::window_set_hdr_output_reference_luminance, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_hdr_output_reference_luminance", "window_id"), &DisplayServer::window_get_hdr_output_reference_luminance, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_hdr_output_current_reference_luminance", "window_id"), &DisplayServer::window_get_hdr_output_current_reference_luminance, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_hdr_output_reference_luminance", "reference_luminance", "window_id"), &DisplayServer::window_set_hdr_output_reference_luminance, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_hdr_output_reference_luminance", "window_id"), &DisplayServer::window_get_hdr_output_reference_luminance, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_hdr_output_current_reference_luminance", "window_id"), &DisplayServer::window_get_hdr_output_current_reference_luminance, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_set_hdr_output_max_luminance", "max_luminance", "window_id"), &DisplayServer::window_set_hdr_output_max_luminance, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_hdr_output_max_luminance", "window_id"), &DisplayServer::window_get_hdr_output_max_luminance, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_hdr_output_current_max_luminance", "window_id"), &DisplayServer::window_get_hdr_output_current_max_luminance, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_set_hdr_output_max_luminance", "max_luminance", "window_id"), &DisplayServer::window_set_hdr_output_max_luminance, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_hdr_output_max_luminance", "window_id"), &DisplayServer::window_get_hdr_output_max_luminance, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_hdr_output_current_max_luminance", "window_id"), &DisplayServer::window_get_hdr_output_current_max_luminance, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_get_output_max_linear_value", "window_id"), &DisplayServer::window_get_output_max_linear_value, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_get_output_max_linear_value", "window_id"), &DisplayServer::window_get_output_max_linear_value, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_is_maximize_allowed", "window_id"), &DisplayServer::window_is_maximize_allowed, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_is_maximize_allowed", "window_id"), &DisplayServer::window_is_maximize_allowed, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); ClassDB::bind_method(D_METHOD("window_maximize_on_title_dbl_click"), &DisplayServer::window_maximize_on_title_dbl_click); ClassDB::bind_method(D_METHOD("window_minimize_on_title_dbl_click"), &DisplayServer::window_minimize_on_title_dbl_click); - ClassDB::bind_method(D_METHOD("window_start_drag", "window_id"), &DisplayServer::window_start_drag, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("window_start_resize", "edge", "window_id"), &DisplayServer::window_start_resize, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_start_drag", "window_id"), &DisplayServer::window_start_drag, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("window_start_resize", "edge", "window_id"), &DisplayServer::window_start_resize, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); ClassDB::bind_method(D_METHOD("window_set_color", "color"), &DisplayServer::window_set_color); @@ -1663,7 +1661,7 @@ void DisplayServer::_bind_methods() { ClassDB::bind_method(D_METHOD("ime_get_selection"), &DisplayServer::ime_get_selection); ClassDB::bind_method(D_METHOD("ime_get_text"), &DisplayServer::ime_get_text); - ClassDB::bind_method(D_METHOD("virtual_keyboard_show", "existing_text", "position", "type", "max_length", "cursor_start", "cursor_end"), &DisplayServer::virtual_keyboard_show, DEFVAL(Rect2()), DEFVAL(KEYBOARD_TYPE_DEFAULT), DEFVAL(-1), DEFVAL(-1), DEFVAL(-1)); + ClassDB::bind_method(D_METHOD("virtual_keyboard_show", "existing_text", "position", "type", "max_length", "cursor_start", "cursor_end"), &DisplayServer::virtual_keyboard_show, DEFVAL(Rect2()), DEFVAL(DisplayServerEnums::KEYBOARD_TYPE_DEFAULT), DEFVAL(-1), DEFVAL(-1), DEFVAL(-1)); ClassDB::bind_method(D_METHOD("virtual_keyboard_hide"), &DisplayServer::virtual_keyboard_hide); ClassDB::bind_method(D_METHOD("virtual_keyboard_get_height"), &DisplayServer::virtual_keyboard_get_height); @@ -1673,7 +1671,7 @@ void DisplayServer::_bind_methods() { ClassDB::bind_method(D_METHOD("cursor_set_shape", "shape"), &DisplayServer::cursor_set_shape); ClassDB::bind_method(D_METHOD("cursor_get_shape"), &DisplayServer::cursor_get_shape); - ClassDB::bind_method(D_METHOD("cursor_set_custom_image", "cursor", "shape", "hotspot"), &DisplayServer::cursor_set_custom_image, DEFVAL(CURSOR_ARROW), DEFVAL(Vector2())); + ClassDB::bind_method(D_METHOD("cursor_set_custom_image", "cursor", "shape", "hotspot"), &DisplayServer::cursor_set_custom_image, DEFVAL(DisplayServerEnums::CURSOR_ARROW), DEFVAL(Vector2())); ClassDB::bind_method(D_METHOD("get_swap_cancel_ok"), &DisplayServer::get_swap_cancel_ok); @@ -1682,8 +1680,8 @@ void DisplayServer::_bind_methods() { ClassDB::bind_method(D_METHOD("dialog_show", "title", "description", "buttons", "callback"), &DisplayServer::dialog_show); ClassDB::bind_method(D_METHOD("dialog_input_text", "title", "description", "existing_text", "callback"), &DisplayServer::dialog_input_text); - ClassDB::bind_method(D_METHOD("file_dialog_show", "title", "current_directory", "filename", "show_hidden", "mode", "filters", "callback", "parent_window_id"), &DisplayServer::file_dialog_show, DEFVAL(MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("file_dialog_with_options_show", "title", "current_directory", "root", "filename", "show_hidden", "mode", "filters", "options", "callback", "parent_window_id"), &DisplayServer::file_dialog_with_options_show, DEFVAL(MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("file_dialog_show", "title", "current_directory", "filename", "show_hidden", "mode", "filters", "callback", "parent_window_id"), &DisplayServer::file_dialog_show, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("file_dialog_with_options_show", "title", "current_directory", "root", "filename", "show_hidden", "mode", "filters", "options", "callback", "parent_window_id"), &DisplayServer::file_dialog_with_options_show, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); ClassDB::bind_method(D_METHOD("beep"), &DisplayServer::beep); @@ -1724,272 +1722,272 @@ void DisplayServer::_bind_methods() { ClassDB::bind_method(D_METHOD("has_additional_outputs"), &DisplayServer::has_additional_outputs); #ifndef DISABLE_DEPRECATED - BIND_ENUM_CONSTANT(FEATURE_GLOBAL_MENU); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_GLOBAL_MENU); #endif // DISABLE_DEPRECATED - BIND_ENUM_CONSTANT(FEATURE_SUBWINDOWS); - BIND_ENUM_CONSTANT(FEATURE_TOUCHSCREEN); - BIND_ENUM_CONSTANT(FEATURE_MOUSE); - BIND_ENUM_CONSTANT(FEATURE_MOUSE_WARP); - BIND_ENUM_CONSTANT(FEATURE_CLIPBOARD); - BIND_ENUM_CONSTANT(FEATURE_VIRTUAL_KEYBOARD); - BIND_ENUM_CONSTANT(FEATURE_CURSOR_SHAPE); - BIND_ENUM_CONSTANT(FEATURE_CUSTOM_CURSOR_SHAPE); - BIND_ENUM_CONSTANT(FEATURE_NATIVE_DIALOG); - BIND_ENUM_CONSTANT(FEATURE_IME); - BIND_ENUM_CONSTANT(FEATURE_WINDOW_TRANSPARENCY); - BIND_ENUM_CONSTANT(FEATURE_HIDPI); - BIND_ENUM_CONSTANT(FEATURE_ICON); - BIND_ENUM_CONSTANT(FEATURE_NATIVE_ICON); - BIND_ENUM_CONSTANT(FEATURE_ORIENTATION); - BIND_ENUM_CONSTANT(FEATURE_SWAP_BUFFERS); - BIND_ENUM_CONSTANT(FEATURE_CLIPBOARD_PRIMARY); - BIND_ENUM_CONSTANT(FEATURE_TEXT_TO_SPEECH); - BIND_ENUM_CONSTANT(FEATURE_EXTEND_TO_TITLE); - BIND_ENUM_CONSTANT(FEATURE_SCREEN_CAPTURE); - BIND_ENUM_CONSTANT(FEATURE_STATUS_INDICATOR); - BIND_ENUM_CONSTANT(FEATURE_NATIVE_HELP); - BIND_ENUM_CONSTANT(FEATURE_NATIVE_DIALOG_INPUT); - BIND_ENUM_CONSTANT(FEATURE_NATIVE_DIALOG_FILE); - BIND_ENUM_CONSTANT(FEATURE_NATIVE_DIALOG_FILE_EXTRA); - BIND_ENUM_CONSTANT(FEATURE_WINDOW_DRAG); - BIND_ENUM_CONSTANT(FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE); - BIND_ENUM_CONSTANT(FEATURE_WINDOW_EMBEDDING); - BIND_ENUM_CONSTANT(FEATURE_NATIVE_DIALOG_FILE_MIME); - BIND_ENUM_CONSTANT(FEATURE_EMOJI_AND_SYMBOL_PICKER); - BIND_ENUM_CONSTANT(FEATURE_NATIVE_COLOR_PICKER); - BIND_ENUM_CONSTANT(FEATURE_SELF_FITTING_WINDOWS); - BIND_ENUM_CONSTANT(FEATURE_ACCESSIBILITY_SCREEN_READER); - BIND_ENUM_CONSTANT(FEATURE_HDR_OUTPUT); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_SUBWINDOWS); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_TOUCHSCREEN); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_MOUSE); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_MOUSE_WARP); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_CLIPBOARD); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_VIRTUAL_KEYBOARD); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_CURSOR_SHAPE); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_CUSTOM_CURSOR_SHAPE); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_NATIVE_DIALOG); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_IME); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_WINDOW_TRANSPARENCY); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_HIDPI); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_ICON); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_NATIVE_ICON); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_ORIENTATION); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_SWAP_BUFFERS); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_TEXT_TO_SPEECH); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_EXTEND_TO_TITLE); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_SCREEN_CAPTURE); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_STATUS_INDICATOR); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_NATIVE_HELP); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_NATIVE_DIALOG_INPUT); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_EXTRA); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_WINDOW_DRAG); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_WINDOW_EMBEDDING); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_NATIVE_DIALOG_FILE_MIME); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_EMOJI_AND_SYMBOL_PICKER); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_NATIVE_COLOR_PICKER); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_SELF_FITTING_WINDOWS); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_ACCESSIBILITY_SCREEN_READER); + BIND_ENUM_CONSTANT(DisplayServerEnums::FEATURE_HDR_OUTPUT); #ifndef DISABLE_DEPRECATED - BIND_ENUM_CONSTANT(ROLE_UNKNOWN); - BIND_ENUM_CONSTANT(ROLE_DEFAULT_BUTTON); - BIND_ENUM_CONSTANT(ROLE_AUDIO); - BIND_ENUM_CONSTANT(ROLE_VIDEO); - BIND_ENUM_CONSTANT(ROLE_STATIC_TEXT); - BIND_ENUM_CONSTANT(ROLE_CONTAINER); - BIND_ENUM_CONSTANT(ROLE_PANEL); - BIND_ENUM_CONSTANT(ROLE_BUTTON); - BIND_ENUM_CONSTANT(ROLE_LINK); - BIND_ENUM_CONSTANT(ROLE_CHECK_BOX); - BIND_ENUM_CONSTANT(ROLE_RADIO_BUTTON); - BIND_ENUM_CONSTANT(ROLE_CHECK_BUTTON); - BIND_ENUM_CONSTANT(ROLE_SCROLL_BAR); - BIND_ENUM_CONSTANT(ROLE_SCROLL_VIEW); - BIND_ENUM_CONSTANT(ROLE_SPLITTER); - BIND_ENUM_CONSTANT(ROLE_SLIDER); - BIND_ENUM_CONSTANT(ROLE_SPIN_BUTTON); - BIND_ENUM_CONSTANT(ROLE_PROGRESS_INDICATOR); - BIND_ENUM_CONSTANT(ROLE_TEXT_FIELD); - BIND_ENUM_CONSTANT(ROLE_MULTILINE_TEXT_FIELD); - BIND_ENUM_CONSTANT(ROLE_COLOR_PICKER); - BIND_ENUM_CONSTANT(ROLE_TABLE); - BIND_ENUM_CONSTANT(ROLE_CELL); - BIND_ENUM_CONSTANT(ROLE_ROW); - BIND_ENUM_CONSTANT(ROLE_ROW_GROUP); - BIND_ENUM_CONSTANT(ROLE_ROW_HEADER); - BIND_ENUM_CONSTANT(ROLE_COLUMN_HEADER); - BIND_ENUM_CONSTANT(ROLE_TREE); - BIND_ENUM_CONSTANT(ROLE_TREE_ITEM); - BIND_ENUM_CONSTANT(ROLE_LIST); - BIND_ENUM_CONSTANT(ROLE_LIST_ITEM); - BIND_ENUM_CONSTANT(ROLE_LIST_BOX); - BIND_ENUM_CONSTANT(ROLE_LIST_BOX_OPTION); - BIND_ENUM_CONSTANT(ROLE_TAB_BAR); - BIND_ENUM_CONSTANT(ROLE_TAB); - BIND_ENUM_CONSTANT(ROLE_TAB_PANEL); - BIND_ENUM_CONSTANT(ROLE_MENU_BAR); - BIND_ENUM_CONSTANT(ROLE_MENU); - BIND_ENUM_CONSTANT(ROLE_MENU_ITEM); - BIND_ENUM_CONSTANT(ROLE_MENU_ITEM_CHECK_BOX); - BIND_ENUM_CONSTANT(ROLE_MENU_ITEM_RADIO); - BIND_ENUM_CONSTANT(ROLE_IMAGE); - BIND_ENUM_CONSTANT(ROLE_WINDOW); - BIND_ENUM_CONSTANT(ROLE_TITLE_BAR); - BIND_ENUM_CONSTANT(ROLE_DIALOG); - BIND_ENUM_CONSTANT(ROLE_TOOLTIP); - BIND_ENUM_CONSTANT(ROLE_REGION); - BIND_ENUM_CONSTANT(ROLE_TEXT_RUN); - - BIND_ENUM_CONSTANT(POPUP_MENU); - BIND_ENUM_CONSTANT(POPUP_LIST); - BIND_ENUM_CONSTANT(POPUP_TREE); - BIND_ENUM_CONSTANT(POPUP_DIALOG); - - BIND_ENUM_CONSTANT(FLAG_HIDDEN); - BIND_ENUM_CONSTANT(FLAG_MULTISELECTABLE); - BIND_ENUM_CONSTANT(FLAG_REQUIRED); - BIND_ENUM_CONSTANT(FLAG_VISITED); - BIND_ENUM_CONSTANT(FLAG_BUSY); - BIND_ENUM_CONSTANT(FLAG_MODAL); - BIND_ENUM_CONSTANT(FLAG_TOUCH_PASSTHROUGH); - BIND_ENUM_CONSTANT(FLAG_READONLY); - BIND_ENUM_CONSTANT(FLAG_DISABLED); - BIND_ENUM_CONSTANT(FLAG_CLIPS_CHILDREN); - - BIND_ENUM_CONSTANT(ACTION_CLICK); - BIND_ENUM_CONSTANT(ACTION_FOCUS); - BIND_ENUM_CONSTANT(ACTION_BLUR); - BIND_ENUM_CONSTANT(ACTION_COLLAPSE); - BIND_ENUM_CONSTANT(ACTION_EXPAND); - BIND_ENUM_CONSTANT(ACTION_DECREMENT); - BIND_ENUM_CONSTANT(ACTION_INCREMENT); - BIND_ENUM_CONSTANT(ACTION_HIDE_TOOLTIP); - BIND_ENUM_CONSTANT(ACTION_SHOW_TOOLTIP); - BIND_ENUM_CONSTANT(ACTION_SET_TEXT_SELECTION); - BIND_ENUM_CONSTANT(ACTION_REPLACE_SELECTED_TEXT); - BIND_ENUM_CONSTANT(ACTION_SCROLL_BACKWARD); - BIND_ENUM_CONSTANT(ACTION_SCROLL_DOWN); - BIND_ENUM_CONSTANT(ACTION_SCROLL_FORWARD); - BIND_ENUM_CONSTANT(ACTION_SCROLL_LEFT); - BIND_ENUM_CONSTANT(ACTION_SCROLL_RIGHT); - BIND_ENUM_CONSTANT(ACTION_SCROLL_UP); - BIND_ENUM_CONSTANT(ACTION_SCROLL_INTO_VIEW); - BIND_ENUM_CONSTANT(ACTION_SCROLL_TO_POINT); - BIND_ENUM_CONSTANT(ACTION_SET_SCROLL_OFFSET); - BIND_ENUM_CONSTANT(ACTION_SET_VALUE); - BIND_ENUM_CONSTANT(ACTION_SHOW_CONTEXT_MENU); - BIND_ENUM_CONSTANT(ACTION_CUSTOM); - - BIND_ENUM_CONSTANT(LIVE_OFF); - BIND_ENUM_CONSTANT(LIVE_POLITE); - BIND_ENUM_CONSTANT(LIVE_ASSERTIVE); - - BIND_ENUM_CONSTANT(SCROLL_UNIT_ITEM); - BIND_ENUM_CONSTANT(SCROLL_UNIT_PAGE); - - BIND_ENUM_CONSTANT(SCROLL_HINT_TOP_LEFT); - BIND_ENUM_CONSTANT(SCROLL_HINT_BOTTOM_RIGHT); - BIND_ENUM_CONSTANT(SCROLL_HINT_TOP_EDGE); - BIND_ENUM_CONSTANT(SCROLL_HINT_BOTTOM_EDGE); - BIND_ENUM_CONSTANT(SCROLL_HINT_LEFT_EDGE); - BIND_ENUM_CONSTANT(SCROLL_HINT_RIGHT_EDGE); - - BIND_ENUM_CONSTANT(MOUSE_MODE_VISIBLE); - BIND_ENUM_CONSTANT(MOUSE_MODE_HIDDEN); - BIND_ENUM_CONSTANT(MOUSE_MODE_CAPTURED); - BIND_ENUM_CONSTANT(MOUSE_MODE_CONFINED); - BIND_ENUM_CONSTANT(MOUSE_MODE_CONFINED_HIDDEN); - BIND_ENUM_CONSTANT(MOUSE_MODE_MAX); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_UNKNOWN); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_DEFAULT_BUTTON); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_AUDIO); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_VIDEO); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_STATIC_TEXT); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_CONTAINER); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_PANEL); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_BUTTON); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_LINK); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_CHECK_BOX); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_RADIO_BUTTON); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_CHECK_BUTTON); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_SCROLL_BAR); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_SCROLL_VIEW); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_SPLITTER); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_SLIDER); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_SPIN_BUTTON); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_PROGRESS_INDICATOR); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_TEXT_FIELD); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_MULTILINE_TEXT_FIELD); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_COLOR_PICKER); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_TABLE); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_CELL); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_ROW); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_ROW_GROUP); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_ROW_HEADER); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_COLUMN_HEADER); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_TREE); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_TREE_ITEM); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_LIST); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_LIST_ITEM); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_LIST_BOX); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_LIST_BOX_OPTION); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_TAB_BAR); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_TAB); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_TAB_PANEL); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_MENU_BAR); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_MENU); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_MENU_ITEM); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_MENU_ITEM_CHECK_BOX); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_MENU_ITEM_RADIO); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_IMAGE); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_WINDOW); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_TITLE_BAR); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_DIALOG); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_TOOLTIP); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_REGION); + BIND_ENUM_CONSTANT(DisplayServerEnums::ROLE_TEXT_RUN); + + BIND_ENUM_CONSTANT(DisplayServerEnums::POPUP_MENU); + BIND_ENUM_CONSTANT(DisplayServerEnums::POPUP_LIST); + BIND_ENUM_CONSTANT(DisplayServerEnums::POPUP_TREE); + BIND_ENUM_CONSTANT(DisplayServerEnums::POPUP_DIALOG); + + BIND_ENUM_CONSTANT(DisplayServerEnums::FLAG_HIDDEN); + BIND_ENUM_CONSTANT(DisplayServerEnums::FLAG_MULTISELECTABLE); + BIND_ENUM_CONSTANT(DisplayServerEnums::FLAG_REQUIRED); + BIND_ENUM_CONSTANT(DisplayServerEnums::FLAG_VISITED); + BIND_ENUM_CONSTANT(DisplayServerEnums::FLAG_BUSY); + BIND_ENUM_CONSTANT(DisplayServerEnums::FLAG_MODAL); + BIND_ENUM_CONSTANT(DisplayServerEnums::FLAG_TOUCH_PASSTHROUGH); + BIND_ENUM_CONSTANT(DisplayServerEnums::FLAG_READONLY); + BIND_ENUM_CONSTANT(DisplayServerEnums::FLAG_DISABLED); + BIND_ENUM_CONSTANT(DisplayServerEnums::FLAG_CLIPS_CHILDREN); + + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_CLICK); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_FOCUS); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_BLUR); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_COLLAPSE); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_EXPAND); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_DECREMENT); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_INCREMENT); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_HIDE_TOOLTIP); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_SHOW_TOOLTIP); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_SET_TEXT_SELECTION); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_REPLACE_SELECTED_TEXT); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_SCROLL_BACKWARD); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_SCROLL_DOWN); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_SCROLL_FORWARD); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_SCROLL_LEFT); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_SCROLL_RIGHT); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_SCROLL_UP); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_SCROLL_INTO_VIEW); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_SCROLL_TO_POINT); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_SET_SCROLL_OFFSET); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_SET_VALUE); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_SHOW_CONTEXT_MENU); + BIND_ENUM_CONSTANT(DisplayServerEnums::ACTION_CUSTOM); + + BIND_ENUM_CONSTANT(DisplayServerEnums::LIVE_OFF); + BIND_ENUM_CONSTANT(DisplayServerEnums::LIVE_POLITE); + BIND_ENUM_CONSTANT(DisplayServerEnums::LIVE_ASSERTIVE); + + BIND_ENUM_CONSTANT(DisplayServerEnums::SCROLL_UNIT_ITEM); + BIND_ENUM_CONSTANT(DisplayServerEnums::SCROLL_UNIT_PAGE); + + BIND_ENUM_CONSTANT(DisplayServerEnums::SCROLL_HINT_TOP_LEFT); + BIND_ENUM_CONSTANT(DisplayServerEnums::SCROLL_HINT_BOTTOM_RIGHT); + BIND_ENUM_CONSTANT(DisplayServerEnums::SCROLL_HINT_TOP_EDGE); + BIND_ENUM_CONSTANT(DisplayServerEnums::SCROLL_HINT_BOTTOM_EDGE); + BIND_ENUM_CONSTANT(DisplayServerEnums::SCROLL_HINT_LEFT_EDGE); + BIND_ENUM_CONSTANT(DisplayServerEnums::SCROLL_HINT_RIGHT_EDGE); + + BIND_ENUM_CONSTANT(DisplayServerEnums::MOUSE_MODE_VISIBLE); + BIND_ENUM_CONSTANT(DisplayServerEnums::MOUSE_MODE_HIDDEN); + BIND_ENUM_CONSTANT(DisplayServerEnums::MOUSE_MODE_CAPTURED); + BIND_ENUM_CONSTANT(DisplayServerEnums::MOUSE_MODE_CONFINED); + BIND_ENUM_CONSTANT(DisplayServerEnums::MOUSE_MODE_CONFINED_HIDDEN); + BIND_ENUM_CONSTANT(DisplayServerEnums::MOUSE_MODE_MAX); #endif // DISABLE_DEPRECATED - BIND_CONSTANT(INVALID_SCREEN); - BIND_CONSTANT(SCREEN_WITH_MOUSE_FOCUS); - BIND_CONSTANT(SCREEN_WITH_KEYBOARD_FOCUS); - BIND_CONSTANT(SCREEN_PRIMARY); - BIND_CONSTANT(SCREEN_OF_MAIN_WINDOW); - - BIND_CONSTANT(MAIN_WINDOW_ID); - BIND_CONSTANT(INVALID_WINDOW_ID); - BIND_CONSTANT(INVALID_INDICATOR_ID); - - BIND_ENUM_CONSTANT(SCREEN_LANDSCAPE); - BIND_ENUM_CONSTANT(SCREEN_PORTRAIT); - BIND_ENUM_CONSTANT(SCREEN_REVERSE_LANDSCAPE); - BIND_ENUM_CONSTANT(SCREEN_REVERSE_PORTRAIT); - BIND_ENUM_CONSTANT(SCREEN_SENSOR_LANDSCAPE); - BIND_ENUM_CONSTANT(SCREEN_SENSOR_PORTRAIT); - BIND_ENUM_CONSTANT(SCREEN_SENSOR); - - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_DEFAULT); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_MULTILINE); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_NUMBER); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_NUMBER_DECIMAL); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_PHONE); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_EMAIL_ADDRESS); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_PASSWORD); - BIND_ENUM_CONSTANT(KEYBOARD_TYPE_URL); - - BIND_ENUM_CONSTANT(CURSOR_ARROW); - BIND_ENUM_CONSTANT(CURSOR_IBEAM); - BIND_ENUM_CONSTANT(CURSOR_POINTING_HAND); - BIND_ENUM_CONSTANT(CURSOR_CROSS); - BIND_ENUM_CONSTANT(CURSOR_WAIT); - BIND_ENUM_CONSTANT(CURSOR_BUSY); - BIND_ENUM_CONSTANT(CURSOR_DRAG); - BIND_ENUM_CONSTANT(CURSOR_CAN_DROP); - BIND_ENUM_CONSTANT(CURSOR_FORBIDDEN); - BIND_ENUM_CONSTANT(CURSOR_VSIZE); - BIND_ENUM_CONSTANT(CURSOR_HSIZE); - BIND_ENUM_CONSTANT(CURSOR_BDIAGSIZE); - BIND_ENUM_CONSTANT(CURSOR_FDIAGSIZE); - BIND_ENUM_CONSTANT(CURSOR_MOVE); - BIND_ENUM_CONSTANT(CURSOR_VSPLIT); - BIND_ENUM_CONSTANT(CURSOR_HSPLIT); - BIND_ENUM_CONSTANT(CURSOR_HELP); - BIND_ENUM_CONSTANT(CURSOR_MAX); - - BIND_ENUM_CONSTANT(FILE_DIALOG_MODE_OPEN_FILE); - BIND_ENUM_CONSTANT(FILE_DIALOG_MODE_OPEN_FILES); - BIND_ENUM_CONSTANT(FILE_DIALOG_MODE_OPEN_DIR); - BIND_ENUM_CONSTANT(FILE_DIALOG_MODE_OPEN_ANY); - BIND_ENUM_CONSTANT(FILE_DIALOG_MODE_SAVE_FILE); - - BIND_ENUM_CONSTANT(WINDOW_MODE_WINDOWED); - BIND_ENUM_CONSTANT(WINDOW_MODE_MINIMIZED); - BIND_ENUM_CONSTANT(WINDOW_MODE_MAXIMIZED); - BIND_ENUM_CONSTANT(WINDOW_MODE_FULLSCREEN); - BIND_ENUM_CONSTANT(WINDOW_MODE_EXCLUSIVE_FULLSCREEN); - - BIND_ENUM_CONSTANT(PROGRESS_STATE_NOPROGRESS); - BIND_ENUM_CONSTANT(PROGRESS_STATE_INDETERMINATE); - BIND_ENUM_CONSTANT(PROGRESS_STATE_NORMAL); - BIND_ENUM_CONSTANT(PROGRESS_STATE_ERROR); - BIND_ENUM_CONSTANT(PROGRESS_STATE_PAUSED); - - BIND_ENUM_CONSTANT(WINDOW_FLAG_RESIZE_DISABLED); - BIND_ENUM_CONSTANT(WINDOW_FLAG_BORDERLESS); - BIND_ENUM_CONSTANT(WINDOW_FLAG_ALWAYS_ON_TOP); - BIND_ENUM_CONSTANT(WINDOW_FLAG_TRANSPARENT); - BIND_ENUM_CONSTANT(WINDOW_FLAG_NO_FOCUS); - BIND_ENUM_CONSTANT(WINDOW_FLAG_POPUP); - BIND_ENUM_CONSTANT(WINDOW_FLAG_EXTEND_TO_TITLE); - BIND_ENUM_CONSTANT(WINDOW_FLAG_MOUSE_PASSTHROUGH); - BIND_ENUM_CONSTANT(WINDOW_FLAG_SHARP_CORNERS); - BIND_ENUM_CONSTANT(WINDOW_FLAG_EXCLUDE_FROM_CAPTURE); - BIND_ENUM_CONSTANT(WINDOW_FLAG_POPUP_WM_HINT); - BIND_ENUM_CONSTANT(WINDOW_FLAG_MINIMIZE_DISABLED); - BIND_ENUM_CONSTANT(WINDOW_FLAG_MAXIMIZE_DISABLED); - BIND_ENUM_CONSTANT(WINDOW_FLAG_MAX); - - BIND_ENUM_CONSTANT(WINDOW_EVENT_MOUSE_ENTER); - BIND_ENUM_CONSTANT(WINDOW_EVENT_MOUSE_EXIT); - BIND_ENUM_CONSTANT(WINDOW_EVENT_FOCUS_IN); - BIND_ENUM_CONSTANT(WINDOW_EVENT_FOCUS_OUT); - BIND_ENUM_CONSTANT(WINDOW_EVENT_CLOSE_REQUEST); - BIND_ENUM_CONSTANT(WINDOW_EVENT_GO_BACK_REQUEST); - BIND_ENUM_CONSTANT(WINDOW_EVENT_DPI_CHANGE); - BIND_ENUM_CONSTANT(WINDOW_EVENT_TITLEBAR_CHANGE); - BIND_ENUM_CONSTANT(WINDOW_EVENT_FORCE_CLOSE); - - BIND_ENUM_CONSTANT(WINDOW_EDGE_TOP_LEFT); - BIND_ENUM_CONSTANT(WINDOW_EDGE_TOP); - BIND_ENUM_CONSTANT(WINDOW_EDGE_TOP_RIGHT); - BIND_ENUM_CONSTANT(WINDOW_EDGE_LEFT); - BIND_ENUM_CONSTANT(WINDOW_EDGE_RIGHT); - BIND_ENUM_CONSTANT(WINDOW_EDGE_BOTTOM_LEFT); - BIND_ENUM_CONSTANT(WINDOW_EDGE_BOTTOM); - BIND_ENUM_CONSTANT(WINDOW_EDGE_BOTTOM_RIGHT); - BIND_ENUM_CONSTANT(WINDOW_EDGE_MAX); - - BIND_ENUM_CONSTANT(VSYNC_DISABLED); - BIND_ENUM_CONSTANT(VSYNC_ENABLED); - BIND_ENUM_CONSTANT(VSYNC_ADAPTIVE); - BIND_ENUM_CONSTANT(VSYNC_MAILBOX); - - BIND_ENUM_CONSTANT(DISPLAY_HANDLE); - BIND_ENUM_CONSTANT(WINDOW_HANDLE); - BIND_ENUM_CONSTANT(WINDOW_VIEW); - BIND_ENUM_CONSTANT(OPENGL_CONTEXT); - BIND_ENUM_CONSTANT(EGL_DISPLAY); - BIND_ENUM_CONSTANT(EGL_CONFIG); - BIND_ENUM_CONSTANT(GLX_VISUALID); - BIND_ENUM_CONSTANT(GLX_FBCONFIG); - - BIND_ENUM_CONSTANT(TTS_UTTERANCE_STARTED); - BIND_ENUM_CONSTANT(TTS_UTTERANCE_ENDED); - BIND_ENUM_CONSTANT(TTS_UTTERANCE_CANCELED); - BIND_ENUM_CONSTANT(TTS_UTTERANCE_BOUNDARY); + BIND_CONSTANT(DisplayServerEnums::INVALID_SCREEN); + BIND_CONSTANT(DisplayServerEnums::SCREEN_WITH_MOUSE_FOCUS); + BIND_CONSTANT(DisplayServerEnums::SCREEN_WITH_KEYBOARD_FOCUS); + BIND_CONSTANT(DisplayServerEnums::SCREEN_PRIMARY); + BIND_CONSTANT(DisplayServerEnums::SCREEN_OF_MAIN_WINDOW); + + BIND_CONSTANT(DisplayServerEnums::MAIN_WINDOW_ID); + BIND_CONSTANT(DisplayServerEnums::INVALID_WINDOW_ID); + BIND_CONSTANT(DisplayServerEnums::INVALID_INDICATOR_ID); + + BIND_ENUM_CONSTANT(DisplayServerEnums::SCREEN_LANDSCAPE); + BIND_ENUM_CONSTANT(DisplayServerEnums::SCREEN_PORTRAIT); + BIND_ENUM_CONSTANT(DisplayServerEnums::SCREEN_REVERSE_LANDSCAPE); + BIND_ENUM_CONSTANT(DisplayServerEnums::SCREEN_REVERSE_PORTRAIT); + BIND_ENUM_CONSTANT(DisplayServerEnums::SCREEN_SENSOR_LANDSCAPE); + BIND_ENUM_CONSTANT(DisplayServerEnums::SCREEN_SENSOR_PORTRAIT); + BIND_ENUM_CONSTANT(DisplayServerEnums::SCREEN_SENSOR); + + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_DEFAULT); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_MULTILINE); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_NUMBER); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_NUMBER_DECIMAL); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_PHONE); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_EMAIL_ADDRESS); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_PASSWORD); + BIND_ENUM_CONSTANT(DisplayServerEnums::KEYBOARD_TYPE_URL); + + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_ARROW); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_IBEAM); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_POINTING_HAND); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_CROSS); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_WAIT); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_BUSY); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_DRAG); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_CAN_DROP); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_FORBIDDEN); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_VSIZE); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_HSIZE); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_BDIAGSIZE); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_FDIAGSIZE); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_MOVE); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_VSPLIT); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_HSPLIT); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_HELP); + BIND_ENUM_CONSTANT(DisplayServerEnums::CURSOR_MAX); + + BIND_ENUM_CONSTANT(DisplayServerEnums::FILE_DIALOG_MODE_OPEN_FILE); + BIND_ENUM_CONSTANT(DisplayServerEnums::FILE_DIALOG_MODE_OPEN_FILES); + BIND_ENUM_CONSTANT(DisplayServerEnums::FILE_DIALOG_MODE_OPEN_DIR); + BIND_ENUM_CONSTANT(DisplayServerEnums::FILE_DIALOG_MODE_OPEN_ANY); + BIND_ENUM_CONSTANT(DisplayServerEnums::FILE_DIALOG_MODE_SAVE_FILE); + + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_MODE_WINDOWED); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_MODE_MINIMIZED); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_MODE_MAXIMIZED); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_MODE_FULLSCREEN); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_MODE_EXCLUSIVE_FULLSCREEN); + + BIND_ENUM_CONSTANT(DisplayServerEnums::PROGRESS_STATE_NOPROGRESS); + BIND_ENUM_CONSTANT(DisplayServerEnums::PROGRESS_STATE_INDETERMINATE); + BIND_ENUM_CONSTANT(DisplayServerEnums::PROGRESS_STATE_NORMAL); + BIND_ENUM_CONSTANT(DisplayServerEnums::PROGRESS_STATE_ERROR); + BIND_ENUM_CONSTANT(DisplayServerEnums::PROGRESS_STATE_PAUSED); + + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_RESIZE_DISABLED); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_BORDERLESS); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_ALWAYS_ON_TOP); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_TRANSPARENT); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_NO_FOCUS); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_POPUP); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_EXTEND_TO_TITLE); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_MOUSE_PASSTHROUGH); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_SHARP_CORNERS); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_EXCLUDE_FROM_CAPTURE); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_POPUP_WM_HINT); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_MINIMIZE_DISABLED); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_MAXIMIZE_DISABLED); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_FLAG_MAX); + + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EVENT_FOCUS_IN); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EVENT_FOCUS_OUT); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EVENT_CLOSE_REQUEST); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EVENT_GO_BACK_REQUEST); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EVENT_DPI_CHANGE); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EVENT_TITLEBAR_CHANGE); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EVENT_FORCE_CLOSE); + + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EDGE_TOP_LEFT); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EDGE_TOP); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EDGE_TOP_RIGHT); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EDGE_LEFT); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EDGE_RIGHT); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EDGE_BOTTOM_LEFT); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EDGE_BOTTOM); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EDGE_BOTTOM_RIGHT); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_EDGE_MAX); + + BIND_ENUM_CONSTANT(DisplayServerEnums::VSYNC_DISABLED); + BIND_ENUM_CONSTANT(DisplayServerEnums::VSYNC_ENABLED); + BIND_ENUM_CONSTANT(DisplayServerEnums::VSYNC_ADAPTIVE); + BIND_ENUM_CONSTANT(DisplayServerEnums::VSYNC_MAILBOX); + + BIND_ENUM_CONSTANT(DisplayServerEnums::DISPLAY_HANDLE); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_HANDLE); + BIND_ENUM_CONSTANT(DisplayServerEnums::WINDOW_VIEW); + BIND_ENUM_CONSTANT(DisplayServerEnums::OPENGL_CONTEXT); + BIND_ENUM_CONSTANT(DisplayServerEnums::EGL_DISPLAY); + BIND_ENUM_CONSTANT(DisplayServerEnums::EGL_CONFIG); + BIND_ENUM_CONSTANT(DisplayServerEnums::GLX_VISUALID); + BIND_ENUM_CONSTANT(DisplayServerEnums::GLX_FBCONFIG); + + BIND_ENUM_CONSTANT(DisplayServerEnums::TTS_UTTERANCE_STARTED); + BIND_ENUM_CONSTANT(DisplayServerEnums::TTS_UTTERANCE_ENDED); + BIND_ENUM_CONSTANT(DisplayServerEnums::TTS_UTTERANCE_CANCELED); + BIND_ENUM_CONSTANT(DisplayServerEnums::TTS_UTTERANCE_BOUNDARY); } Ref DisplayServer::_get_cursor_image_from_resource(const Ref &p_cursor, const Vector2 &p_hotspot) { @@ -2040,13 +2038,13 @@ Vector DisplayServer::get_create_function_rendering_drivers(int p_index) return server_create_functions[p_index].get_rendering_drivers_function(); } -DisplayServer *DisplayServer::create(int p_index, const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServer *DisplayServer::create(int p_index, const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { ERR_FAIL_INDEX_V(p_index, server_create_count, nullptr); return server_create_functions[p_index].create_function(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_position, p_resolution, p_screen, p_context, p_parent_window, r_error); } void DisplayServer::_input_set_mouse_mode(InputClassEnums::MouseMode p_mode) { - singleton->mouse_set_mode(MouseMode(p_mode)); + singleton->mouse_set_mode(DisplayServerEnums::MouseMode(p_mode)); } InputClassEnums::MouseMode DisplayServer::_input_get_mouse_mode() { @@ -2054,7 +2052,7 @@ InputClassEnums::MouseMode DisplayServer::_input_get_mouse_mode() { } void DisplayServer::_input_set_mouse_mode_override(InputClassEnums::MouseMode p_mode) { - singleton->mouse_set_mode_override(MouseMode(p_mode)); + singleton->mouse_set_mode_override(DisplayServerEnums::MouseMode(p_mode)); } InputClassEnums::MouseMode DisplayServer::_input_get_mouse_mode_override() { @@ -2078,7 +2076,7 @@ InputClassEnums::CursorShape DisplayServer::_input_get_current_cursor_shape() { } void DisplayServer::_input_set_custom_mouse_cursor_func(const Ref &p_image, InputClassEnums::CursorShape p_shape, const Vector2 &p_hotspot) { - singleton->cursor_set_custom_image(p_image, (CursorShape)p_shape, p_hotspot); + singleton->cursor_set_custom_image(p_image, (DisplayServerEnums::CursorShape)p_shape, p_hotspot); } bool DisplayServer::is_rendering_device_supported() { @@ -2088,9 +2086,9 @@ bool DisplayServer::is_rendering_device_supported() { return true; } - if (supported_rendering_device == RenderingDeviceCreationStatus::SUCCESS) { + if (supported_rendering_device == DisplayServerEnums::RenderingDeviceCreationStatus::SUCCESS) { return true; - } else if (supported_rendering_device == RenderingDeviceCreationStatus::FAILURE) { + } else if (supported_rendering_device == DisplayServerEnums::RenderingDeviceCreationStatus::FAILURE) { return false; } @@ -2109,10 +2107,10 @@ bool DisplayServer::is_rendering_device_supported() { int exitcode = 0; err = OS::get_singleton()->execute(OS::get_singleton()->get_executable_path(), arguments, &pipe, &exitcode); if (err == OK && exitcode == 0) { - supported_rendering_device = RenderingDeviceCreationStatus::SUCCESS; + supported_rendering_device = DisplayServerEnums::RenderingDeviceCreationStatus::SUCCESS; return true; } else { - supported_rendering_device = RenderingDeviceCreationStatus::FAILURE; + supported_rendering_device = DisplayServerEnums::RenderingDeviceCreationStatus::FAILURE; } #else // WINDOWS_ENABLED @@ -2145,12 +2143,12 @@ bool DisplayServer::is_rendering_device_supported() { if (err == OK) { // Creating a RenderingDevice is quite slow. // Cache the result for future usage, so that it's much faster on subsequent calls. - supported_rendering_device = RenderingDeviceCreationStatus::SUCCESS; + supported_rendering_device = DisplayServerEnums::RenderingDeviceCreationStatus::SUCCESS; memdelete(rcd); rcd = nullptr; return true; } else { - supported_rendering_device = RenderingDeviceCreationStatus::FAILURE; + supported_rendering_device = DisplayServerEnums::RenderingDeviceCreationStatus::FAILURE; } } @@ -2174,9 +2172,9 @@ bool DisplayServer::can_create_rendering_device() { return true; } - if (created_rendering_device == RenderingDeviceCreationStatus::SUCCESS) { + if (created_rendering_device == DisplayServerEnums::RenderingDeviceCreationStatus::SUCCESS) { return true; - } else if (created_rendering_device == RenderingDeviceCreationStatus::FAILURE) { + } else if (created_rendering_device == DisplayServerEnums::RenderingDeviceCreationStatus::FAILURE) { return false; } @@ -2191,10 +2189,10 @@ bool DisplayServer::can_create_rendering_device() { int exitcode = 0; err = OS::get_singleton()->execute(OS::get_singleton()->get_executable_path(), arguments, &pipe, &exitcode); if (err == OK && exitcode == 0) { - created_rendering_device = RenderingDeviceCreationStatus::SUCCESS; + created_rendering_device = DisplayServerEnums::RenderingDeviceCreationStatus::SUCCESS; return true; } else { - created_rendering_device = RenderingDeviceCreationStatus::FAILURE; + created_rendering_device = DisplayServerEnums::RenderingDeviceCreationStatus::FAILURE; } #else // WINDOWS_ENABLED @@ -2227,12 +2225,12 @@ bool DisplayServer::can_create_rendering_device() { if (err == OK) { // Creating a RenderingDevice is quite slow. // Cache the result for future usage, so that it's much faster on subsequent calls. - created_rendering_device = RenderingDeviceCreationStatus::SUCCESS; + created_rendering_device = DisplayServerEnums::RenderingDeviceCreationStatus::SUCCESS; memdelete(rcd); rcd = nullptr; return true; } else { - created_rendering_device = RenderingDeviceCreationStatus::FAILURE; + created_rendering_device = DisplayServerEnums::RenderingDeviceCreationStatus::FAILURE; } } diff --git a/servers/display/display_server.h b/servers/display/display_server.h index 7610bcbffa48..e956b5697c82 100644 --- a/servers/display/display_server.h +++ b/servers/display/display_server.h @@ -37,90 +37,65 @@ #include "core/os/os.h" #include "core/variant/callable.h" #include "core/variant/typed_array.h" +#include "servers/display/display_server_enums.h" class NativeMenu; class Texture2D; +#undef CursorShape namespace InputClassEnums { enum MouseMode : int; enum CursorShape : int; } //namespace InputClassEnums +// Defined here so it can be forward-declared. +struct TTSUtterance { + String text; + String voice; + int volume = 50; + float pitch = 1.f; + float rate = 1.f; + int64_t id = 0; +}; + class DisplayServer : public Object { GDCLASS(DisplayServer, Object) static DisplayServer *singleton; - static bool hidpi_allowed; - -#ifndef DISABLE_DEPRECATED - mutable HashMap menu_names; - - RID _get_rid_from_name(NativeMenu *p_nmenu, const String &p_menu_root) const; - RID _accessibility_create_sub_text_edit_elements_bind_compat_113459(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos = -1); -#endif - - LocalVector additional_outputs; public: _FORCE_INLINE_ static DisplayServer *get_singleton() { return singleton; } - enum WindowMode { - WINDOW_MODE_WINDOWED, - WINDOW_MODE_MINIMIZED, - WINDOW_MODE_MAXIMIZED, - WINDOW_MODE_FULLSCREEN, - WINDOW_MODE_EXCLUSIVE_FULLSCREEN, - }; + /* CREATE */ - enum ProgressState { - PROGRESS_STATE_NOPROGRESS, - PROGRESS_STATE_INDETERMINATE, - PROGRESS_STATE_NORMAL, - PROGRESS_STATE_ERROR, - PROGRESS_STATE_PAUSED, +private: + enum { + MAX_SERVERS = 64 }; - // Keep the VSyncMode enum values in sync with the `display/window/vsync/vsync_mode` - // project setting hint. - enum VSyncMode { - VSYNC_DISABLED, - VSYNC_ENABLED, - VSYNC_ADAPTIVE, - VSYNC_MAILBOX - }; + typedef DisplayServer *(*CreateFunction)(const String &, DisplayServerEnums::WindowMode, DisplayServerEnums::VSyncMode, uint32_t, const Point2i *, const Size2i &, int p_screen, DisplayServerEnums::Context, int64_t p_parent_window, Error &r_error); + typedef Vector (*GetRenderingDriversFunction)(); - enum HandleType { - DISPLAY_HANDLE, - WINDOW_HANDLE, - WINDOW_VIEW, - OPENGL_CONTEXT, - EGL_DISPLAY, - EGL_CONFIG, - GLX_VISUALID, - GLX_FBCONFIG, + struct DisplayServerCreate { + const char *name; + CreateFunction create_function; + GetRenderingDriversFunction get_rendering_drivers_function; }; - enum Context { - CONTEXT_EDITOR, - CONTEXT_PROJECTMAN, - CONTEXT_ENGINE, - }; + static DisplayServerCreate server_create_functions[MAX_SERVERS]; + static int server_create_count; - typedef DisplayServer *(*CreateFunction)(const String &, WindowMode, VSyncMode, uint32_t, const Point2i *, const Size2i &, int p_screen, Context, int64_t p_parent_window, Error &r_error); - typedef Vector (*GetRenderingDriversFunction)(); +public: + static void register_create_function(const char *p_name, CreateFunction p_function, GetRenderingDriversFunction p_get_drivers); + static int get_create_function_count(); + static const char *get_create_function_name(int p_index); + static Vector get_create_function_rendering_drivers(int p_index); + static DisplayServer *create(int p_index, const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); -private: - static void _input_set_mouse_mode(InputClassEnums::MouseMode p_mode); - static InputClassEnums::MouseMode _input_get_mouse_mode(); - static void _input_set_mouse_mode_override(InputClassEnums::MouseMode p_mode); - static InputClassEnums::MouseMode _input_get_mouse_mode_override(); - static void _input_set_mouse_mode_override_enabled(bool p_enabled); - static bool _input_is_mouse_mode_override_enabled(); - static void _input_warp(const Vector2 &p_to_pos); - static InputClassEnums::CursorShape _input_get_current_cursor_shape(); - static void _input_set_custom_mouse_cursor_func(const Ref &, InputClassEnums::CursorShape, const Vector2 &p_hotspot); + DisplayServer(); + ~DisplayServer(); protected: static void _bind_methods(); @@ -129,71 +104,47 @@ class DisplayServer : public Object { static void _bind_compatibility_methods(); #endif - static Ref _get_cursor_image_from_resource(const Ref &p_cursor, const Vector2 &p_hotspot); + /* MAIN */ - enum { - MAX_SERVERS = 64 - }; +public: + virtual String get_name() const = 0; - struct DisplayServerCreate { - const char *name; - CreateFunction create_function; - GetRenderingDriversFunction get_rendering_drivers_function; - }; + virtual void set_context(DisplayServerEnums::Context p_context); + virtual void set_native_icon(const String &p_filename); + virtual void set_icon(const Ref &p_icon); - static DisplayServerCreate server_create_functions[MAX_SERVERS]; - static int server_create_count; + virtual bool has_feature(DisplayServerEnums::Feature p_feature) const = 0; - friend class RendererViewport; + virtual void process_events() = 0; + virtual void force_process_and_drop_events(); -public: - enum Feature { -#ifndef DISABLE_DEPRECATED - FEATURE_GLOBAL_MENU, -#endif - FEATURE_SUBWINDOWS, - FEATURE_TOUCHSCREEN, - FEATURE_MOUSE, - FEATURE_MOUSE_WARP, - FEATURE_CLIPBOARD, - FEATURE_VIRTUAL_KEYBOARD, - FEATURE_CURSOR_SHAPE, - FEATURE_CUSTOM_CURSOR_SHAPE, - FEATURE_NATIVE_DIALOG, - FEATURE_IME, - FEATURE_WINDOW_TRANSPARENCY, - FEATURE_HIDPI, - FEATURE_ICON, - FEATURE_NATIVE_ICON, - FEATURE_ORIENTATION, - FEATURE_SWAP_BUFFERS, - FEATURE_KEEP_SCREEN_ON, - FEATURE_CLIPBOARD_PRIMARY, - FEATURE_TEXT_TO_SPEECH, - FEATURE_EXTEND_TO_TITLE, - FEATURE_SCREEN_CAPTURE, - FEATURE_STATUS_INDICATOR, - FEATURE_NATIVE_HELP, - FEATURE_NATIVE_DIALOG_INPUT, - FEATURE_NATIVE_DIALOG_FILE, - FEATURE_NATIVE_DIALOG_FILE_EXTRA, - FEATURE_WINDOW_DRAG, - FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE, - FEATURE_WINDOW_EMBEDDING, - FEATURE_NATIVE_DIALOG_FILE_MIME, - FEATURE_EMOJI_AND_SYMBOL_PICKER, - FEATURE_NATIVE_COLOR_PICKER, - FEATURE_SELF_FITTING_WINDOWS, - FEATURE_ACCESSIBILITY_SCREEN_READER, - FEATURE_HDR_OUTPUT, - }; + virtual void release_rendering_thread(); + virtual void swap_buffers(); - virtual bool has_feature(Feature p_feature) const = 0; - virtual String get_name() const = 0; + virtual void beep() const; + + /* RENDERING DEVICE */ + + // Used to cache the result of `can_create_rendering_device()` when RenderingDevice isn't currently being used. + // This is done as creating a RenderingDevice is quite slow. + static inline DisplayServerEnums::RenderingDeviceCreationStatus created_rendering_device = DisplayServerEnums::RenderingDeviceCreationStatus::UNKNOWN; + static bool can_create_rendering_device(); + static inline DisplayServerEnums::RenderingDeviceCreationStatus supported_rendering_device = DisplayServerEnums::RenderingDeviceCreationStatus::UNKNOWN; + static bool is_rendering_device_supported(); + + /* GLOBAL MENU */ + +public: virtual void help_set_search_callbacks(const Callable &p_search_callback = Callable(), const Callable &p_action_callback = Callable()); #ifndef DISABLE_DEPRECATED +private: + mutable HashMap menu_names; + + RID _get_rid_from_name(NativeMenu *p_nmenu, const String &p_menu_root) const; + +public: virtual void global_menu_set_popup_callbacks(const String &p_menu_root, const Callable &p_open_callback = Callable(), const Callable &p_close_callback = Callable()); virtual int global_menu_add_submenu_item(const String &p_menu_root, const String &p_label, const String &p_submenu, int p_index = -1); @@ -252,25 +203,10 @@ class DisplayServer : public Object { virtual Dictionary global_menu_get_system_menu_roots() const; #endif // DISABLE_DEPRECATED - struct TTSUtterance { - String text; - String voice; - int volume = 50; - float pitch = 1.f; - float rate = 1.f; - int64_t id = 0; - }; - - enum TTSUtteranceEvent { - TTS_UTTERANCE_STARTED, - TTS_UTTERANCE_ENDED, - TTS_UTTERANCE_CANCELED, - TTS_UTTERANCE_BOUNDARY, - TTS_UTTERANCE_MAX, - }; + /* TTS */ private: - Callable utterance_callback[TTS_UTTERANCE_MAX]; + Callable utterance_callback[DisplayServerEnums::TTS_UTTERANCE_MAX]; public: virtual bool tts_is_speaking() const; @@ -283,8 +219,10 @@ class DisplayServer : public Object { virtual void tts_resume(); virtual void tts_stop(); - virtual void tts_set_utterance_callback(TTSUtteranceEvent p_event, const Callable &p_callable); - virtual void tts_post_utterance_event(TTSUtteranceEvent p_event, int64_t p_id, int p_pos = 0); + virtual void tts_set_utterance_callback(DisplayServerEnums::TTSUtteranceEvent p_event, const Callable &p_callable); + virtual void tts_post_utterance_event(DisplayServerEnums::TTSUtteranceEvent p_event, int64_t p_id, int p_pos = 0); + + /* THEME */ virtual bool is_dark_mode_supported() const { return false; } virtual bool is_dark_mode() const { return false; } @@ -293,29 +231,27 @@ class DisplayServer : public Object { virtual void set_system_theme_change_callback(const Callable &p_callable) {} virtual void set_hardware_keyboard_connection_change_callback(const Callable &p_callable) {} + /* MOUSE */ + private: - static bool window_early_clear_override_enabled; - static Color window_early_clear_override_color; + static void _input_set_mouse_mode(InputClassEnums::MouseMode p_mode); + static InputClassEnums::MouseMode _input_get_mouse_mode(); + static void _input_set_mouse_mode_override(InputClassEnums::MouseMode p_mode); + static InputClassEnums::MouseMode _input_get_mouse_mode_override(); + static void _input_set_mouse_mode_override_enabled(bool p_enabled); + static bool _input_is_mouse_mode_override_enabled(); + static void _input_warp(const Vector2 &p_to_pos); + static InputClassEnums::CursorShape _input_get_current_cursor_shape(); + static void _input_set_custom_mouse_cursor_func(const Ref &, InputClassEnums::CursorShape, const Vector2 &p_hotspot); protected: - static bool _get_window_early_clear_override(Color &r_color); + static Ref _get_cursor_image_from_resource(const Ref &p_cursor, const Vector2 &p_hotspot); public: - static void set_early_window_clear_color_override(bool p_enabled, Color p_color = Color(0, 0, 0, 0)); - - enum MouseMode { - MOUSE_MODE_VISIBLE, // Input::MouseMode::MOUSE_MODE_VISIBLE - MOUSE_MODE_HIDDEN, // Input::MouseMode::MOUSE_MODE_HIDDEN - MOUSE_MODE_CAPTURED, // Input::MouseMode::MOUSE_MODE_CAPTURED - MOUSE_MODE_CONFINED, // Input::MouseMode::MOUSE_MODE_CONFINED - MOUSE_MODE_CONFINED_HIDDEN, // Input::MouseMode::MOUSE_MODE_CONFINED_HIDDEN - MOUSE_MODE_MAX, // Input::MouseMode::MOUSE_MODE_MAX - }; - - virtual void mouse_set_mode(MouseMode p_mode); - virtual MouseMode mouse_get_mode() const; - virtual void mouse_set_mode_override(MouseMode p_mode); - virtual MouseMode mouse_get_mode_override() const; + virtual void mouse_set_mode(DisplayServerEnums::MouseMode p_mode); + virtual DisplayServerEnums::MouseMode mouse_get_mode() const; + virtual void mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode); + virtual DisplayServerEnums::MouseMode mouse_get_mode_override() const; virtual void mouse_set_mode_override_enabled(bool p_override_enabled); virtual bool mouse_is_mode_override_enabled() const; @@ -323,6 +259,40 @@ class DisplayServer : public Object { virtual Point2i mouse_get_position() const; virtual BitField mouse_get_button_state() const; + virtual void cursor_set_shape(DisplayServerEnums::CursorShape p_shape); + virtual DisplayServerEnums::CursorShape cursor_get_shape() const; + virtual void cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape = DisplayServerEnums::CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()); + + /* KEYBOARD */ + + virtual Point2i ime_get_selection() const; + virtual String ime_get_text() const; + + virtual void virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2(), DisplayServerEnums::VirtualKeyboardType p_type = DisplayServerEnums::KEYBOARD_TYPE_DEFAULT, int p_max_length = -1, int p_cursor_start = -1, int p_cursor_end = -1); + virtual void virtual_keyboard_hide(); + + // Returns height of the currently shown virtual keyboard (0 if keyboard is hidden). + virtual int virtual_keyboard_get_height() const; + + virtual bool has_hardware_keyboard() const; + + virtual int keyboard_get_layout_count() const; + virtual int keyboard_get_current_layout() const; + virtual void keyboard_set_current_layout(int p_index); + virtual String keyboard_get_layout_language(int p_index) const; + virtual String keyboard_get_layout_name(int p_index) const; + virtual Key keyboard_get_keycode_from_physical(Key p_keycode) const; + virtual Key keyboard_get_label_from_physical(Key p_keycode) const; + + /* TABLET */ + + virtual int tablet_get_driver_count() const { return 1; } + virtual String tablet_get_driver_name(int p_driver) const { return "default"; } + virtual String tablet_get_current_driver() const { return "default"; } + virtual void tablet_set_current_driver(const String &p_driver) {} + + /* CLIPBOARD */ + virtual void clipboard_set(const String &p_text); virtual String clipboard_get() const; virtual Ref clipboard_get_image() const; @@ -331,33 +301,27 @@ class DisplayServer : public Object { virtual void clipboard_set_primary(const String &p_text); virtual String clipboard_get_primary() const; - virtual TypedArray get_display_cutouts() const { return TypedArray(); } - virtual Rect2i get_display_safe_area() const { return screen_get_usable_rect(); } - - enum { - INVALID_SCREEN = -1, - SCREEN_WITH_MOUSE_FOCUS = -4, - SCREEN_WITH_KEYBOARD_FOCUS = -3, - SCREEN_PRIMARY = -2, - SCREEN_OF_MAIN_WINDOW = -1, // Note: for the main window, determine screen from position. - }; + /* SCREEN */ const float SCREEN_REFRESH_RATE_FALLBACK = -1.0; // Returned by screen_get_refresh_rate if the method fails. + virtual TypedArray get_display_cutouts() const { return TypedArray(); } + virtual Rect2i get_display_safe_area() const { return screen_get_usable_rect(); } + int _get_screen_index(int p_screen) const { switch (p_screen) { - case SCREEN_WITH_MOUSE_FOCUS: { + case DisplayServerEnums::SCREEN_WITH_MOUSE_FOCUS: { const Rect2i rect = Rect2i(mouse_get_position(), Vector2i(1, 1)); return get_screen_from_rect(rect); } break; - case SCREEN_WITH_KEYBOARD_FOCUS: { + case DisplayServerEnums::SCREEN_WITH_KEYBOARD_FOCUS: { return get_keyboard_focus_screen(); } break; - case SCREEN_PRIMARY: { + case DisplayServerEnums::SCREEN_PRIMARY: { return get_primary_screen(); } break; - case SCREEN_OF_MAIN_WINDOW: { - return window_get_current_screen(MAIN_WINDOW_ID); + case DisplayServerEnums::SCREEN_OF_MAIN_WINDOW: { + return window_get_current_screen(DisplayServerEnums::MAIN_WINDOW_ID); } break; default: { return p_screen; @@ -369,11 +333,11 @@ class DisplayServer : public Object { virtual int get_primary_screen() const = 0; virtual int get_keyboard_focus_screen() const { return get_primary_screen(); } virtual int get_screen_from_rect(const Rect2 &p_rect) const; - virtual Point2i screen_get_position(int p_screen = SCREEN_OF_MAIN_WINDOW) const = 0; - virtual Size2i screen_get_size(int p_screen = SCREEN_OF_MAIN_WINDOW) const = 0; - virtual Rect2i screen_get_usable_rect(int p_screen = SCREEN_OF_MAIN_WINDOW) const = 0; - virtual int screen_get_dpi(int p_screen = SCREEN_OF_MAIN_WINDOW) const = 0; - virtual float screen_get_scale(int p_screen = SCREEN_OF_MAIN_WINDOW) const; + virtual Point2i screen_get_position(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const = 0; + virtual Size2i screen_get_size(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const = 0; + virtual Rect2i screen_get_usable_rect(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const = 0; + virtual int screen_get_dpi(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const = 0; + virtual float screen_get_scale(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const; virtual float screen_get_max_scale() const { float max_scale = 1.f; int screen_count = get_screen_count(); @@ -382,333 +346,207 @@ class DisplayServer : public Object { } return max_scale; } - virtual float screen_get_refresh_rate(int p_screen = SCREEN_OF_MAIN_WINDOW) const = 0; + virtual float screen_get_refresh_rate(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const = 0; virtual Color screen_get_pixel(const Point2i &p_position) const { return Color(); } - virtual Ref screen_get_image(int p_screen = SCREEN_OF_MAIN_WINDOW) const { return Ref(); } + virtual Ref screen_get_image(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const { return Ref(); } virtual Ref screen_get_image_rect(const Rect2i &p_rect) const { return Ref(); } virtual bool is_touchscreen_available() const; - // Keep the ScreenOrientation enum values in sync with the `display/window/handheld/orientation` - // project setting hint. - enum ScreenOrientation { - SCREEN_LANDSCAPE, - SCREEN_PORTRAIT, - SCREEN_REVERSE_LANDSCAPE, - SCREEN_REVERSE_PORTRAIT, - SCREEN_SENSOR_LANDSCAPE, - SCREEN_SENSOR_PORTRAIT, - SCREEN_SENSOR, - }; - - virtual void screen_set_orientation(ScreenOrientation p_orientation, int p_screen = SCREEN_OF_MAIN_WINDOW); - virtual ScreenOrientation screen_get_orientation(int p_screen = SCREEN_OF_MAIN_WINDOW) const; + virtual void screen_set_orientation(DisplayServerEnums::ScreenOrientation p_orientation, int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW); + virtual DisplayServerEnums::ScreenOrientation screen_get_orientation(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const; virtual void screen_set_keep_on(bool p_enable); //disable screensaver virtual bool screen_is_kept_on() const; - enum { - MAIN_WINDOW_ID = 0, - INVALID_WINDOW_ID = -1, - INVALID_INDICATOR_ID = -1 - }; + + /* WINDOW */ + +private: + static bool window_early_clear_override_enabled; + static Color window_early_clear_override_color; + +protected: + static bool _get_window_early_clear_override(Color &r_color); public: - typedef int WindowID; - typedef int IndicatorID; - - virtual Vector get_window_list() const = 0; - - enum WindowFlags { - WINDOW_FLAG_RESIZE_DISABLED, - WINDOW_FLAG_BORDERLESS, - WINDOW_FLAG_ALWAYS_ON_TOP, - WINDOW_FLAG_TRANSPARENT, - WINDOW_FLAG_NO_FOCUS, - WINDOW_FLAG_POPUP, - WINDOW_FLAG_EXTEND_TO_TITLE, - WINDOW_FLAG_MOUSE_PASSTHROUGH, - WINDOW_FLAG_SHARP_CORNERS, - WINDOW_FLAG_EXCLUDE_FROM_CAPTURE, - WINDOW_FLAG_POPUP_WM_HINT, - WINDOW_FLAG_MINIMIZE_DISABLED, - WINDOW_FLAG_MAXIMIZE_DISABLED, - WINDOW_FLAG_MAX, - }; + static void set_early_window_clear_color_override(bool p_enabled, Color p_color = Color(0, 0, 0, 0)); - // Separate enum otherwise we get warnings in switches not handling all values. - enum WindowFlagsBit { - WINDOW_FLAG_RESIZE_DISABLED_BIT = (1 << WINDOW_FLAG_RESIZE_DISABLED), - WINDOW_FLAG_BORDERLESS_BIT = (1 << WINDOW_FLAG_BORDERLESS), - WINDOW_FLAG_ALWAYS_ON_TOP_BIT = (1 << WINDOW_FLAG_ALWAYS_ON_TOP), - WINDOW_FLAG_TRANSPARENT_BIT = (1 << WINDOW_FLAG_TRANSPARENT), - WINDOW_FLAG_NO_FOCUS_BIT = (1 << WINDOW_FLAG_NO_FOCUS), - WINDOW_FLAG_POPUP_BIT = (1 << WINDOW_FLAG_POPUP), - WINDOW_FLAG_EXTEND_TO_TITLE_BIT = (1 << WINDOW_FLAG_EXTEND_TO_TITLE), - WINDOW_FLAG_MOUSE_PASSTHROUGH_BIT = (1 << WINDOW_FLAG_MOUSE_PASSTHROUGH), - WINDOW_FLAG_SHARP_CORNERS_BIT = (1 << WINDOW_FLAG_SHARP_CORNERS), - WINDOW_FLAG_EXCLUDE_FROM_CAPTURE_BIT = (1 << WINDOW_FLAG_EXCLUDE_FROM_CAPTURE), - WINDOW_FLAG_POPUP_WM_HINT_BIT = (1 << WINDOW_FLAG_POPUP_WM_HINT), - WINDOW_FLAG_MINIMIZE_DISABLED_BIT = (1 << WINDOW_FLAG_MINIMIZE_DISABLED), - WINDOW_FLAG_MAXIMIZE_DISABLED_BIT = (1 << WINDOW_FLAG_MAXIMIZE_DISABLED), - }; + virtual Vector get_window_list() const = 0; - virtual WindowID create_sub_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect = Rect2i(), bool p_exclusive = false, WindowID p_transient_parent = INVALID_WINDOW_ID); - virtual void show_window(WindowID p_id); - virtual void delete_sub_window(WindowID p_id); + virtual DisplayServerEnums::WindowID create_sub_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect = Rect2i(), bool p_exclusive = false, DisplayServerEnums::WindowID p_transient_parent = DisplayServerEnums::INVALID_WINDOW_ID); + virtual void show_window(DisplayServerEnums::WindowID p_id); + virtual void delete_sub_window(DisplayServerEnums::WindowID p_id); - virtual WindowID window_get_active_popup() const { return INVALID_WINDOW_ID; } - virtual void window_set_popup_safe_rect(WindowID p_window, const Rect2i &p_rect) {} - virtual Rect2i window_get_popup_safe_rect(WindowID p_window) const { return Rect2i(); } + virtual DisplayServerEnums::WindowID window_get_active_popup() const { return DisplayServerEnums::INVALID_WINDOW_ID; } + virtual void window_set_popup_safe_rect(DisplayServerEnums::WindowID p_window, const Rect2i &p_rect) {} + virtual Rect2i window_get_popup_safe_rect(DisplayServerEnums::WindowID p_window) const { return Rect2i(); } - virtual int64_t window_get_native_handle(HandleType p_handle_type, WindowID p_window = MAIN_WINDOW_ID) const; + virtual int64_t window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const; - virtual WindowID get_window_at_screen_position(const Point2i &p_position) const = 0; + virtual DisplayServerEnums::WindowID get_window_at_screen_position(const Point2i &p_position) const = 0; - virtual void window_attach_instance_id(ObjectID p_instance, WindowID p_window = MAIN_WINDOW_ID) = 0; // Note: internal method used by Window, do not expose. - virtual ObjectID window_get_attached_instance_id(WindowID p_window = MAIN_WINDOW_ID) const = 0; + virtual void window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; // Note: internal method used by Window, do not expose. + virtual ObjectID window_get_attached_instance_id(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; - virtual void window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) = 0; + virtual void window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; - enum WindowEvent { - WINDOW_EVENT_MOUSE_ENTER, - WINDOW_EVENT_MOUSE_EXIT, - WINDOW_EVENT_FOCUS_IN, - WINDOW_EVENT_FOCUS_OUT, - WINDOW_EVENT_CLOSE_REQUEST, - WINDOW_EVENT_GO_BACK_REQUEST, - WINDOW_EVENT_DPI_CHANGE, - WINDOW_EVENT_TITLEBAR_CHANGE, - WINDOW_EVENT_FORCE_CLOSE, - }; - virtual void window_set_window_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) = 0; - virtual void window_set_input_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) = 0; - virtual void window_set_input_text_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) = 0; + virtual void window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; + virtual void window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; + virtual void window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; - virtual void window_set_drop_files_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) = 0; + virtual void window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; - virtual void window_set_title(const String &p_title, WindowID p_window = MAIN_WINDOW_ID) = 0; - virtual Size2i window_get_title_size(const String &p_title, WindowID p_window = MAIN_WINDOW_ID) const { return Size2i(); } + virtual void window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; + virtual Size2i window_get_title_size(const String &p_title, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const { return Size2i(); } - virtual void window_set_mouse_passthrough(const Vector &p_region, WindowID p_window = MAIN_WINDOW_ID); + virtual void window_set_mouse_passthrough(const Vector &p_region, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID); - virtual int window_get_current_screen(WindowID p_window = MAIN_WINDOW_ID) const = 0; - virtual void window_set_current_screen(int p_screen, WindowID p_window = MAIN_WINDOW_ID) = 0; + virtual int window_get_current_screen(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; + virtual void window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; - virtual Point2i window_get_position(WindowID p_window = MAIN_WINDOW_ID) const = 0; - virtual Point2i window_get_position_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const = 0; - virtual void window_set_position(const Point2i &p_position, WindowID p_window = MAIN_WINDOW_ID) = 0; + virtual Point2i window_get_position(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; + virtual Point2i window_get_position_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; + virtual void window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; - virtual void window_set_transient(WindowID p_window, WindowID p_parent) = 0; - virtual void window_set_exclusive(WindowID p_window, bool p_exclusive); + virtual void window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) = 0; + virtual void window_set_exclusive(DisplayServerEnums::WindowID p_window, bool p_exclusive); - virtual void window_set_max_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) = 0; - virtual Size2i window_get_max_size(WindowID p_window = MAIN_WINDOW_ID) const = 0; + virtual void window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; + virtual Size2i window_get_max_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; - virtual void window_set_min_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) = 0; - virtual Size2i window_get_min_size(WindowID p_window = MAIN_WINDOW_ID) const = 0; + virtual void window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; + virtual Size2i window_get_min_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; - virtual void window_set_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) = 0; - virtual Size2i window_get_size(WindowID p_window = MAIN_WINDOW_ID) const = 0; - virtual Size2i window_get_size_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const = 0; + virtual void window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; + virtual Size2i window_get_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; + virtual Size2i window_get_size_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; - virtual float window_get_scale(WindowID p_window = MAIN_WINDOW_ID) const { + virtual float window_get_scale(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const { int screen = window_get_current_screen(p_window); return screen_get_scale(screen); } - virtual void window_set_mode(WindowMode p_mode, WindowID p_window = MAIN_WINDOW_ID) = 0; - virtual WindowMode window_get_mode(WindowID p_window = MAIN_WINDOW_ID) const = 0; + virtual void window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; + virtual DisplayServerEnums::WindowMode window_get_mode(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; - virtual void window_set_vsync_mode(VSyncMode p_vsync_mode, WindowID p_window = MAIN_WINDOW_ID); - virtual VSyncMode window_get_vsync_mode(WindowID p_window) const; + virtual void window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID); + virtual DisplayServerEnums::VSyncMode window_get_vsync_mode(DisplayServerEnums::WindowID p_window) const; - virtual bool window_is_hdr_output_supported(WindowID p_window = MAIN_WINDOW_ID) const; + virtual bool window_is_hdr_output_supported(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const; - virtual void window_request_hdr_output(const bool p_enable, WindowID p_window = MAIN_WINDOW_ID); - virtual bool window_is_hdr_output_requested(WindowID p_window = MAIN_WINDOW_ID) const; - virtual bool window_is_hdr_output_enabled(WindowID p_window = MAIN_WINDOW_ID) const; + virtual void window_request_hdr_output(const bool p_enable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID); + virtual bool window_is_hdr_output_requested(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const; + virtual bool window_is_hdr_output_enabled(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const; - virtual void window_set_hdr_output_reference_luminance(const float p_reference_luminance, WindowID p_window = MAIN_WINDOW_ID); - virtual float window_get_hdr_output_reference_luminance(WindowID p_window = MAIN_WINDOW_ID) const; - virtual float window_get_hdr_output_current_reference_luminance(WindowID p_window = MAIN_WINDOW_ID) const; + virtual void window_set_hdr_output_reference_luminance(const float p_reference_luminance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID); + virtual float window_get_hdr_output_reference_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const; + virtual float window_get_hdr_output_current_reference_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const; - virtual void window_set_hdr_output_max_luminance(const float p_max_luminance, WindowID p_window = MAIN_WINDOW_ID); - virtual float window_get_hdr_output_max_luminance(WindowID p_window = MAIN_WINDOW_ID) const; - virtual float window_get_hdr_output_current_max_luminance(WindowID p_window = MAIN_WINDOW_ID) const; + virtual void window_set_hdr_output_max_luminance(const float p_max_luminance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID); + virtual float window_get_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const; + virtual float window_get_hdr_output_current_max_luminance(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const; - virtual float window_get_output_max_linear_value(WindowID p_window = MAIN_WINDOW_ID) const; + virtual float window_get_output_max_linear_value(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const; - virtual bool window_is_maximize_allowed(WindowID p_window = MAIN_WINDOW_ID) const = 0; + virtual bool window_is_maximize_allowed(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; - virtual void window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window = MAIN_WINDOW_ID) = 0; - virtual bool window_get_flag(WindowFlags p_flag, WindowID p_window = MAIN_WINDOW_ID) const = 0; + virtual void window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; + virtual bool window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; - virtual void window_request_attention(WindowID p_window = MAIN_WINDOW_ID) = 0; - virtual void window_set_taskbar_progress_value(float p_value, WindowID p_window = MAIN_WINDOW_ID) {} - virtual void window_set_taskbar_progress_state(ProgressState p_state, WindowID p_window = MAIN_WINDOW_ID) {} - virtual void window_move_to_foreground(WindowID p_window = MAIN_WINDOW_ID) = 0; - virtual bool window_is_focused(WindowID p_window = MAIN_WINDOW_ID) const = 0; + virtual void window_request_attention(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; + virtual void window_set_taskbar_progress_value(float p_value, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) {} + virtual void window_set_taskbar_progress_state(DisplayServerEnums::ProgressState p_state, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) {} + virtual void window_move_to_foreground(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) = 0; + virtual bool window_is_focused(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; - virtual WindowID get_focused_window() const; + virtual DisplayServerEnums::WindowID get_focused_window() const; - virtual void window_set_window_buttons_offset(const Vector2i &p_offset, WindowID p_window = MAIN_WINDOW_ID) {} - virtual Vector3i window_get_safe_title_margins(WindowID p_window = MAIN_WINDOW_ID) const { return Vector3i(); } + virtual void window_set_window_buttons_offset(const Vector2i &p_offset, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) {} + virtual Vector3i window_get_safe_title_margins(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const { return Vector3i(); } - virtual bool window_can_draw(WindowID p_window = MAIN_WINDOW_ID) const = 0; + virtual bool window_can_draw(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; virtual bool can_any_window_draw() const = 0; - virtual void window_set_ime_active(const bool p_active, WindowID p_window = MAIN_WINDOW_ID); - virtual void window_set_ime_position(const Point2i &p_pos, WindowID p_window = MAIN_WINDOW_ID); + virtual void window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID); + virtual void window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID); virtual bool window_maximize_on_title_dbl_click() const { return false; } virtual bool window_minimize_on_title_dbl_click() const { return false; } - virtual void window_start_drag(WindowID p_window = MAIN_WINDOW_ID) {} + virtual void window_start_drag(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) {} virtual void window_set_color(const Color &p_color) {} - enum WindowResizeEdge { - WINDOW_EDGE_TOP_LEFT, - WINDOW_EDGE_TOP, - WINDOW_EDGE_TOP_RIGHT, - WINDOW_EDGE_LEFT, - WINDOW_EDGE_RIGHT, - WINDOW_EDGE_BOTTOM_LEFT, - WINDOW_EDGE_BOTTOM, - WINDOW_EDGE_BOTTOM_RIGHT, - WINDOW_EDGE_MAX, - }; + virtual void window_start_resize(DisplayServerEnums::WindowResizeEdge p_edge, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) {} - virtual void window_start_resize(WindowResizeEdge p_edge, WindowID p_window = MAIN_WINDOW_ID) {} + // necessary for GL focus, may be able to use one of the existing functions for this, not sure yet + virtual void gl_window_make_current(DisplayServerEnums::WindowID p_window_id); - // Accessibility. + virtual bool is_window_transparency_available() const { return false; } -public: - virtual int accessibility_should_increase_contrast() const { return -1; } - virtual int accessibility_should_reduce_animation() const { return -1; } - virtual int accessibility_should_reduce_transparency() const { return -1; } - virtual int accessibility_screen_reader_active() const { return -1; } + /* PROCESS */ + + virtual void enable_for_stealing_focus(OS::ProcessID pid); + + virtual Error embed_process(DisplayServerEnums::WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus); + virtual Error request_close_embedded_process(OS::ProcessID p_pid); + virtual Error remove_embedded_process(OS::ProcessID p_pid); + virtual OS::ProcessID get_focused_process_id(); + + /* DIALOGS */ + + virtual bool get_swap_cancel_ok(); + + virtual Error dialog_show(String p_title, String p_description, Vector p_buttons, const Callable &p_callback); + virtual Error dialog_input_text(String p_title, String p_description, String p_partial, const Callable &p_callback); + + virtual Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID); + virtual Error file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id = DisplayServerEnums::MAIN_WINDOW_ID); #ifndef DISABLE_DEPRECATED - enum AccessibilityRole { - ROLE_UNKNOWN, - ROLE_DEFAULT_BUTTON, - ROLE_AUDIO, - ROLE_VIDEO, - ROLE_STATIC_TEXT, - ROLE_CONTAINER, - ROLE_PANEL, - ROLE_BUTTON, - ROLE_LINK, - ROLE_CHECK_BOX, - ROLE_RADIO_BUTTON, - ROLE_CHECK_BUTTON, - ROLE_SCROLL_BAR, - ROLE_SCROLL_VIEW, - ROLE_SPLITTER, - ROLE_SLIDER, - ROLE_SPIN_BUTTON, - ROLE_PROGRESS_INDICATOR, - ROLE_TEXT_FIELD, - ROLE_MULTILINE_TEXT_FIELD, - ROLE_COLOR_PICKER, - ROLE_TABLE, - ROLE_CELL, - ROLE_ROW, - ROLE_ROW_GROUP, - ROLE_ROW_HEADER, - ROLE_COLUMN_HEADER, - ROLE_TREE, - ROLE_TREE_ITEM, - ROLE_LIST, - ROLE_LIST_ITEM, - ROLE_LIST_BOX, - ROLE_LIST_BOX_OPTION, - ROLE_TAB_BAR, - ROLE_TAB, - ROLE_TAB_PANEL, - ROLE_MENU_BAR, - ROLE_MENU, - ROLE_MENU_ITEM, - ROLE_MENU_ITEM_CHECK_BOX, - ROLE_MENU_ITEM_RADIO, - ROLE_IMAGE, - ROLE_WINDOW, - ROLE_TITLE_BAR, - ROLE_DIALOG, - ROLE_TOOLTIP, - ROLE_REGION, - ROLE_TEXT_RUN, - }; + Error _file_dialog_show_bind_compat_98194(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback); + Error _file_dialog_with_options_show_bind_compat_98194(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback); +#endif - enum AccessibilityPopupType { - POPUP_MENU, - POPUP_LIST, - POPUP_TREE, - POPUP_DIALOG, - }; + virtual void show_emoji_and_symbol_picker() const; + virtual bool color_picker(const Callable &p_callback); - enum AccessibilityFlags { - FLAG_HIDDEN, - FLAG_MULTISELECTABLE, - FLAG_REQUIRED, - FLAG_VISITED, - FLAG_BUSY, - FLAG_MODAL, - FLAG_TOUCH_PASSTHROUGH, - FLAG_READONLY, - FLAG_DISABLED, - FLAG_CLIPS_CHILDREN, - }; + /* STATUS INDICATOR */ - enum AccessibilityAction { - ACTION_CLICK, - ACTION_FOCUS, - ACTION_BLUR, - ACTION_COLLAPSE, - ACTION_EXPAND, - ACTION_DECREMENT, - ACTION_INCREMENT, - ACTION_HIDE_TOOLTIP, - ACTION_SHOW_TOOLTIP, - ACTION_SET_TEXT_SELECTION, - ACTION_REPLACE_SELECTED_TEXT, - ACTION_SCROLL_BACKWARD, - ACTION_SCROLL_DOWN, - ACTION_SCROLL_FORWARD, - ACTION_SCROLL_LEFT, - ACTION_SCROLL_RIGHT, - ACTION_SCROLL_UP, - ACTION_SCROLL_INTO_VIEW, - ACTION_SCROLL_TO_POINT, - ACTION_SET_SCROLL_OFFSET, - ACTION_SET_VALUE, - ACTION_SHOW_CONTEXT_MENU, - ACTION_CUSTOM, - }; + virtual DisplayServerEnums::IndicatorID create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback); + virtual void status_indicator_set_icon(DisplayServerEnums::IndicatorID p_id, const Ref &p_icon); + virtual void status_indicator_set_tooltip(DisplayServerEnums::IndicatorID p_id, const String &p_tooltip); + virtual void status_indicator_set_menu(DisplayServerEnums::IndicatorID p_id, const RID &p_menu_rid); + virtual void status_indicator_set_callback(DisplayServerEnums::IndicatorID p_id, const Callable &p_callback); + virtual Rect2 status_indicator_get_rect(DisplayServerEnums::IndicatorID p_id) const; + virtual void delete_status_indicator(DisplayServerEnums::IndicatorID p_id); - enum AccessibilityLiveMode { - LIVE_OFF, - LIVE_POLITE, - LIVE_ASSERTIVE, - }; + /* OUTPUT */ - enum AccessibilityScrollUnit { - SCROLL_UNIT_ITEM, - SCROLL_UNIT_PAGE, - }; +private: + LocalVector additional_outputs; - enum AccessibilityScrollHint { - SCROLL_HINT_TOP_LEFT, - SCROLL_HINT_BOTTOM_RIGHT, - SCROLL_HINT_TOP_EDGE, - SCROLL_HINT_BOTTOM_EDGE, - SCROLL_HINT_LEFT_EDGE, - SCROLL_HINT_RIGHT_EDGE, - }; +public: + void register_additional_output(Object *p_output); + void unregister_additional_output(Object *p_output); + bool has_additional_outputs() const { return additional_outputs.size() > 0; } + + /* ACCESSIBILITY */ + +#ifndef DISABLE_DEPRECATED +private: + RID _accessibility_create_sub_text_edit_elements_bind_compat_113459(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos = -1); +#endif + +public: + virtual int accessibility_should_increase_contrast() const { return -1; } + virtual int accessibility_should_reduce_animation() const { return -1; } + virtual int accessibility_should_reduce_transparency() const { return -1; } + virtual int accessibility_screen_reader_active() const { return -1; } - virtual RID accessibility_create_element(WindowID p_window_id, AccessibilityRole p_role); - virtual RID accessibility_create_sub_element(const RID &p_parent_rid, AccessibilityRole p_role, int p_insert_pos = -1); +#ifndef DISABLE_DEPRECATED + virtual RID accessibility_create_element(DisplayServerEnums::WindowID p_window_id, DisplayServerEnums::AccessibilityRole p_role); + virtual RID accessibility_create_sub_element(const RID &p_parent_rid, DisplayServerEnums::AccessibilityRole p_role, int p_insert_pos = -1); virtual RID accessibility_create_sub_text_edit_elements(const RID &p_parent_rid, const RID &p_shaped_text, float p_min_height, int p_insert_pos = -1, bool p_is_last_line = false); virtual bool accessibility_has_element(const RID &p_id) const; virtual void accessibility_free_element(const RID &p_id); @@ -719,15 +557,15 @@ class DisplayServer : public Object { virtual void accessibility_update_if_active(const Callable &p_callable); virtual void accessibility_update_set_focus(const RID &p_id); - virtual RID accessibility_get_window_root(DisplayServer::WindowID p_window_id) const; + virtual RID accessibility_get_window_root(DisplayServerEnums::WindowID p_window_id) const; - virtual void accessibility_set_window_rect(DisplayServer::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in); - virtual void accessibility_set_window_focused(DisplayServer::WindowID p_window_id, bool p_focused); - virtual void accessibility_set_window_callbacks(DisplayServer::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable); // Note: internal method used by Window, do not expose. - virtual void accessibility_window_activation_completed(DisplayServer::WindowID p_window_id); // Note: internal method used by Window, do not expose. - virtual void accessibility_window_deactivation_completed(DisplayServer::WindowID p_window_id); // Note: internal method used by Window, do not expose. + virtual void accessibility_set_window_rect(DisplayServerEnums::WindowID p_window_id, const Rect2 &p_rect_out, const Rect2 &p_rect_in); + virtual void accessibility_set_window_focused(DisplayServerEnums::WindowID p_window_id, bool p_focused); + virtual void accessibility_set_window_callbacks(DisplayServerEnums::WindowID p_window_id, const Callable &p_activate_callable, const Callable &p_deativate_callable); // Note: internal method used by Window, do not expose. + virtual void accessibility_window_activation_completed(DisplayServerEnums::WindowID p_window_id); // Note: internal method used by Window, do not expose. + virtual void accessibility_window_deactivation_completed(DisplayServerEnums::WindowID p_window_id); // Note: internal method used by Window, do not expose. - virtual void accessibility_update_set_role(const RID &p_id, AccessibilityRole p_role); + virtual void accessibility_update_set_role(const RID &p_id, DisplayServerEnums::AccessibilityRole p_role); virtual void accessibility_update_set_name(const RID &p_id, const String &p_name); virtual void accessibility_update_set_extra_info(const RID &p_id, const String &p_name_extra_info); virtual void accessibility_update_set_description(const RID &p_id, const String &p_description); @@ -748,8 +586,8 @@ class DisplayServer : public Object { virtual void accessibility_update_set_member_of(const RID &p_id, const RID &p_group_id); virtual void accessibility_update_set_in_page_link_target(const RID &p_id, const RID &p_other_id); virtual void accessibility_update_set_error_message(const RID &p_id, const RID &p_other_id); - virtual void accessibility_update_set_live(const RID &p_id, AccessibilityLiveMode p_live); - virtual void accessibility_update_add_action(const RID &p_id, AccessibilityAction p_action, const Callable &p_callable); + virtual void accessibility_update_set_live(const RID &p_id, DisplayServerEnums::AccessibilityLiveMode p_live); + virtual void accessibility_update_add_action(const RID &p_id, DisplayServerEnums::AccessibilityAction p_action, const Callable &p_callable); virtual void accessibility_update_add_custom_action(const RID &p_id, int p_action_id, const String &p_action_description); virtual void accessibility_update_set_table_row_count(const RID &p_id, int p_count); virtual void accessibility_update_set_table_column_count(const RID &p_id, int p_count); @@ -762,7 +600,7 @@ class DisplayServer : public Object { virtual void accessibility_update_set_list_item_level(const RID &p_id, int p_level); virtual void accessibility_update_set_list_item_selected(const RID &p_id, bool p_selected); virtual void accessibility_update_set_list_item_expanded(const RID &p_id, bool p_expanded); - virtual void accessibility_update_set_popup_type(const RID &p_id, AccessibilityPopupType p_popup); + virtual void accessibility_update_set_popup_type(const RID &p_id, DisplayServerEnums::AccessibilityPopupType p_popup); virtual void accessibility_update_set_checked(const RID &p_id, bool p_checekd); virtual void accessibility_update_set_num_value(const RID &p_id, double p_position); virtual void accessibility_update_set_num_range(const RID &p_id, double p_min, double p_max); @@ -775,7 +613,7 @@ class DisplayServer : public Object { virtual void accessibility_update_set_text_decorations(const RID &p_id, bool p_underline, bool p_strikethrough, bool p_overline); virtual void accessibility_update_set_text_align(const RID &p_id, HorizontalAlignment p_align); virtual void accessibility_update_set_text_selection(const RID &p_id, const RID &p_text_start_id, int p_start_char, const RID &p_text_end_id, int p_end_char); - virtual void accessibility_update_set_flag(const RID &p_id, AccessibilityFlags p_flag, bool p_value); + virtual void accessibility_update_set_flag(const RID &p_id, DisplayServerEnums::AccessibilityFlags p_flag, bool p_value); virtual void accessibility_update_set_classname(const RID &p_id, const String &p_classname); virtual void accessibility_update_set_placeholder(const RID &p_id, const String &p_placeholder); virtual void accessibility_update_set_language(const RID &p_id, const String &p_language); @@ -789,172 +627,29 @@ class DisplayServer : public Object { virtual void accessibility_update_set_background_color(const RID &p_id, const Color &p_color); virtual void accessibility_update_set_foreground_color(const RID &p_id, const Color &p_color); #endif // DISABLE_DEPRECATED - - // necessary for GL focus, may be able to use one of the existing functions for this, not sure yet - virtual void gl_window_make_current(DisplayServer::WindowID p_window_id); - - virtual Point2i ime_get_selection() const; - virtual String ime_get_text() const; - - enum VirtualKeyboardType { - KEYBOARD_TYPE_DEFAULT, - KEYBOARD_TYPE_MULTILINE, - KEYBOARD_TYPE_NUMBER, - KEYBOARD_TYPE_NUMBER_DECIMAL, - KEYBOARD_TYPE_PHONE, - KEYBOARD_TYPE_EMAIL_ADDRESS, - KEYBOARD_TYPE_PASSWORD, - KEYBOARD_TYPE_URL - }; - - virtual void virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2(), VirtualKeyboardType p_type = KEYBOARD_TYPE_DEFAULT, int p_max_length = -1, int p_cursor_start = -1, int p_cursor_end = -1); - virtual void virtual_keyboard_hide(); - - // returns height of the currently shown virtual keyboard (0 if keyboard is hidden) - virtual int virtual_keyboard_get_height() const; - - virtual bool has_hardware_keyboard() const; - - enum CursorShape { - CURSOR_ARROW, - CURSOR_IBEAM, - CURSOR_POINTING_HAND, - CURSOR_CROSS, - CURSOR_WAIT, - CURSOR_BUSY, - CURSOR_DRAG, - CURSOR_CAN_DROP, - CURSOR_FORBIDDEN, - CURSOR_VSIZE, - CURSOR_HSIZE, - CURSOR_BDIAGSIZE, - CURSOR_FDIAGSIZE, - CURSOR_MOVE, - CURSOR_VSPLIT, - CURSOR_HSPLIT, - CURSOR_HELP, - CURSOR_MAX - }; - virtual void cursor_set_shape(CursorShape p_shape); - virtual CursorShape cursor_get_shape() const; - virtual void cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape = CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()); - - virtual bool get_swap_cancel_ok(); - - virtual void enable_for_stealing_focus(OS::ProcessID pid); - - virtual Error embed_process(WindowID p_window, OS::ProcessID p_pid, const Rect2i &p_rect, bool p_visible, bool p_grab_focus); - virtual Error request_close_embedded_process(OS::ProcessID p_pid); - virtual Error remove_embedded_process(OS::ProcessID p_pid); - virtual OS::ProcessID get_focused_process_id(); - - virtual Error dialog_show(String p_title, String p_description, Vector p_buttons, const Callable &p_callback); - virtual Error dialog_input_text(String p_title, String p_description, String p_partial, const Callable &p_callback); - - enum FileDialogMode { - FILE_DIALOG_MODE_OPEN_FILE, - FILE_DIALOG_MODE_OPEN_FILES, - FILE_DIALOG_MODE_OPEN_DIR, - FILE_DIALOG_MODE_OPEN_ANY, - FILE_DIALOG_MODE_SAVE_FILE, - FILE_DIALOG_MODE_SAVE_MAX - }; - virtual Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, WindowID p_window_id = MAIN_WINDOW_ID); - virtual Error file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, WindowID p_window_id = MAIN_WINDOW_ID); - -#ifndef DISABLE_DEPRECATED - Error _file_dialog_show_bind_compat_98194(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback); - Error _file_dialog_with_options_show_bind_compat_98194(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback); -#endif - - virtual void beep() const; - - virtual int keyboard_get_layout_count() const; - virtual int keyboard_get_current_layout() const; - virtual void keyboard_set_current_layout(int p_index); - virtual String keyboard_get_layout_language(int p_index) const; - virtual String keyboard_get_layout_name(int p_index) const; - virtual Key keyboard_get_keycode_from_physical(Key p_keycode) const; - virtual Key keyboard_get_label_from_physical(Key p_keycode) const; - virtual void show_emoji_and_symbol_picker() const; - virtual bool color_picker(const Callable &p_callback); - - virtual int tablet_get_driver_count() const { return 1; } - virtual String tablet_get_driver_name(int p_driver) const { return "default"; } - virtual String tablet_get_current_driver() const { return "default"; } - virtual void tablet_set_current_driver(const String &p_driver) {} - - virtual void process_events() = 0; - - virtual void force_process_and_drop_events(); - - virtual void release_rendering_thread(); - virtual void swap_buffers(); - - virtual void set_native_icon(const String &p_filename); - virtual void set_icon(const Ref &p_icon); - - virtual IndicatorID create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback); - virtual void status_indicator_set_icon(IndicatorID p_id, const Ref &p_icon); - virtual void status_indicator_set_tooltip(IndicatorID p_id, const String &p_tooltip); - virtual void status_indicator_set_menu(IndicatorID p_id, const RID &p_menu_rid); - virtual void status_indicator_set_callback(IndicatorID p_id, const Callable &p_callback); - virtual Rect2 status_indicator_get_rect(IndicatorID p_id) const; - virtual void delete_status_indicator(IndicatorID p_id); - - virtual void set_context(Context p_context); - - virtual bool is_window_transparency_available() const { return false; } - - void register_additional_output(Object *p_output); - void unregister_additional_output(Object *p_output); - bool has_additional_outputs() const { return additional_outputs.size() > 0; } - - static void register_create_function(const char *p_name, CreateFunction p_function, GetRenderingDriversFunction p_get_drivers); - static int get_create_function_count(); - static const char *get_create_function_name(int p_index); - static Vector get_create_function_rendering_drivers(int p_index); - static DisplayServer *create(int p_index, const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); - - enum RenderingDeviceCreationStatus { - UNKNOWN, - SUCCESS, - FAILURE, - }; - - // Used to cache the result of `can_create_rendering_device()` when RenderingDevice isn't currently being used. - // This is done as creating a RenderingDevice is quite slow. - static inline RenderingDeviceCreationStatus created_rendering_device = RenderingDeviceCreationStatus::UNKNOWN; - static bool can_create_rendering_device(); - - static inline RenderingDeviceCreationStatus supported_rendering_device = RenderingDeviceCreationStatus::UNKNOWN; - static bool is_rendering_device_supported(); - - DisplayServer(); - ~DisplayServer(); }; +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::Feature, DisplayServer::Feature) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::TTSUtteranceEvent, DisplayServer::TTSUtteranceEvent) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::MouseMode, DisplayServer::MouseMode) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::CursorShape, DisplayServer::CursorShape) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::VirtualKeyboardType, DisplayServer::VirtualKeyboardType) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::ScreenOrientation, DisplayServer::ScreenOrientation) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::HandleType, DisplayServer::HandleType) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::WindowMode, DisplayServer::WindowMode) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::WindowFlags, DisplayServer::WindowFlags) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::WindowEvent, DisplayServer::WindowEvent) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::WindowResizeEdge, DisplayServer::WindowResizeEdge) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::VSyncMode, DisplayServer::VSyncMode) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::ProgressState, DisplayServer::ProgressState) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::FileDialogMode, DisplayServer::FileDialogMode) + #ifndef DISABLE_DEPRECATED -VARIANT_ENUM_CAST(DisplayServer::AccessibilityAction) -VARIANT_ENUM_CAST(DisplayServer::AccessibilityFlags) -VARIANT_ENUM_CAST(DisplayServer::AccessibilityLiveMode) -VARIANT_ENUM_CAST(DisplayServer::AccessibilityPopupType) -VARIANT_ENUM_CAST(DisplayServer::AccessibilityRole) -VARIANT_ENUM_CAST(DisplayServer::AccessibilityScrollUnit) -VARIANT_ENUM_CAST(DisplayServer::AccessibilityScrollHint) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::AccessibilityRole, DisplayServer::AccessibilityRole) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::AccessibilityPopupType, DisplayServer::AccessibilityPopupType) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::AccessibilityFlags, DisplayServer::AccessibilityFlags) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::AccessibilityAction, DisplayServer::AccessibilityAction) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::AccessibilityLiveMode, DisplayServer::AccessibilityLiveMode) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::AccessibilityScrollUnit, DisplayServer::AccessibilityScrollUnit) +VARIANT_ENUM_CAST_EXT(DisplayServerEnums::AccessibilityScrollHint, DisplayServer::AccessibilityScrollHint) #endif // DISABLE_DEPRECATED - -VARIANT_ENUM_CAST(DisplayServer::WindowEvent) -VARIANT_ENUM_CAST(DisplayServer::Feature) -VARIANT_ENUM_CAST(DisplayServer::MouseMode) -VARIANT_ENUM_CAST(DisplayServer::ScreenOrientation) -VARIANT_ENUM_CAST(DisplayServer::WindowMode) -VARIANT_ENUM_CAST(DisplayServer::WindowFlags) -VARIANT_ENUM_CAST(DisplayServer::WindowResizeEdge) -VARIANT_ENUM_CAST(DisplayServer::HandleType) -VARIANT_ENUM_CAST(DisplayServer::VirtualKeyboardType); -VARIANT_ENUM_CAST(DisplayServer::CursorShape) -VARIANT_ENUM_CAST(DisplayServer::VSyncMode) -VARIANT_ENUM_CAST(DisplayServer::TTSUtteranceEvent) -VARIANT_ENUM_CAST(DisplayServer::FileDialogMode) -VARIANT_ENUM_CAST(DisplayServer::ProgressState) diff --git a/servers/display/display_server_enums.h b/servers/display/display_server_enums.h new file mode 100644 index 000000000000..a1604b9c3a5e --- /dev/null +++ b/servers/display/display_server_enums.h @@ -0,0 +1,416 @@ +/**************************************************************************/ +/* display_server_enums.h */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +#pragma once + +namespace DisplayServerEnums { + +/* MAIN */ + +enum Context { + CONTEXT_EDITOR, + CONTEXT_PROJECTMAN, + CONTEXT_ENGINE, +}; + +enum Feature { +#ifndef DISABLE_DEPRECATED + FEATURE_GLOBAL_MENU, +#endif + FEATURE_SUBWINDOWS, + FEATURE_TOUCHSCREEN, + FEATURE_MOUSE, + FEATURE_MOUSE_WARP, + FEATURE_CLIPBOARD, + FEATURE_VIRTUAL_KEYBOARD, + FEATURE_CURSOR_SHAPE, + FEATURE_CUSTOM_CURSOR_SHAPE, + FEATURE_NATIVE_DIALOG, + FEATURE_IME, + FEATURE_WINDOW_TRANSPARENCY, + FEATURE_HIDPI, + FEATURE_ICON, + FEATURE_NATIVE_ICON, + FEATURE_ORIENTATION, + FEATURE_SWAP_BUFFERS, + FEATURE_KEEP_SCREEN_ON, + FEATURE_CLIPBOARD_PRIMARY, + FEATURE_TEXT_TO_SPEECH, + FEATURE_EXTEND_TO_TITLE, + FEATURE_SCREEN_CAPTURE, + FEATURE_STATUS_INDICATOR, + FEATURE_NATIVE_HELP, + FEATURE_NATIVE_DIALOG_INPUT, + FEATURE_NATIVE_DIALOG_FILE, + FEATURE_NATIVE_DIALOG_FILE_EXTRA, + FEATURE_WINDOW_DRAG, + FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE, + FEATURE_WINDOW_EMBEDDING, + FEATURE_NATIVE_DIALOG_FILE_MIME, + FEATURE_EMOJI_AND_SYMBOL_PICKER, + FEATURE_NATIVE_COLOR_PICKER, + FEATURE_SELF_FITTING_WINDOWS, + FEATURE_ACCESSIBILITY_SCREEN_READER, + FEATURE_HDR_OUTPUT, +}; + +/* RENDERING DEVICE */ + +enum RenderingDeviceCreationStatus { + UNKNOWN, + SUCCESS, + FAILURE, +}; + +/* TTS */ + +enum TTSUtteranceEvent { + TTS_UTTERANCE_STARTED, + TTS_UTTERANCE_ENDED, + TTS_UTTERANCE_CANCELED, + TTS_UTTERANCE_BOUNDARY, + TTS_UTTERANCE_MAX, +}; + +/* MOUSE */ + +// Keep synced with InputClassEnums::MouseMode enum. +enum MouseMode { + MOUSE_MODE_VISIBLE, // Input::MouseMode::MOUSE_MODE_VISIBLE + MOUSE_MODE_HIDDEN, // Input::MouseMode::MOUSE_MODE_HIDDEN + MOUSE_MODE_CAPTURED, // Input::MouseMode::MOUSE_MODE_CAPTURED + MOUSE_MODE_CONFINED, // Input::MouseMode::MOUSE_MODE_CONFINED + MOUSE_MODE_CONFINED_HIDDEN, // Input::MouseMode::MOUSE_MODE_CONFINED_HIDDEN + MOUSE_MODE_MAX, // Input::MouseMode::MOUSE_MODE_MAX +}; + +// Keep synced with InputClassEnums and Control enums. +#undef CursorShape +enum CursorShape { + CURSOR_ARROW, + CURSOR_IBEAM, + CURSOR_POINTING_HAND, + CURSOR_CROSS, + CURSOR_WAIT, + CURSOR_BUSY, + CURSOR_DRAG, + CURSOR_CAN_DROP, + CURSOR_FORBIDDEN, + CURSOR_VSIZE, + CURSOR_HSIZE, + CURSOR_BDIAGSIZE, + CURSOR_FDIAGSIZE, + CURSOR_MOVE, + CURSOR_VSPLIT, + CURSOR_HSPLIT, + CURSOR_HELP, + CURSOR_MAX +}; + +/* KEYBOARD */ + +// Keep synced with LineEdit::VirtualKeyboardType enum. +enum VirtualKeyboardType { + KEYBOARD_TYPE_DEFAULT, + KEYBOARD_TYPE_MULTILINE, + KEYBOARD_TYPE_NUMBER, + KEYBOARD_TYPE_NUMBER_DECIMAL, + KEYBOARD_TYPE_PHONE, + KEYBOARD_TYPE_EMAIL_ADDRESS, + KEYBOARD_TYPE_PASSWORD, + KEYBOARD_TYPE_URL +}; + +/* SCREEN */ + +// Keep synced with EditorSettings::InitialScreen enum. +enum { + INVALID_SCREEN = -1, + SCREEN_WITH_MOUSE_FOCUS = -4, + SCREEN_WITH_KEYBOARD_FOCUS = -3, + SCREEN_PRIMARY = -2, + SCREEN_OF_MAIN_WINDOW = -1, // Note: for the main window, determine screen from position. +}; + +// Keep the ScreenOrientation enum values in sync with the `display/window/handheld/orientation` +// project setting hint. +enum ScreenOrientation { + SCREEN_LANDSCAPE, + SCREEN_PORTRAIT, + SCREEN_REVERSE_LANDSCAPE, + SCREEN_REVERSE_PORTRAIT, + SCREEN_SENSOR_LANDSCAPE, + SCREEN_SENSOR_PORTRAIT, + SCREEN_SENSOR, +}; + +/* WINDOW */ + +typedef int WindowID; + +enum { + MAIN_WINDOW_ID = 0, + INVALID_WINDOW_ID = -1, + INVALID_INDICATOR_ID = -1 +}; + +enum HandleType { + DISPLAY_HANDLE, + WINDOW_HANDLE, + WINDOW_VIEW, + OPENGL_CONTEXT, + EGL_DISPLAY, + EGL_CONFIG, + GLX_VISUALID, + GLX_FBCONFIG, +}; + +enum WindowMode { + WINDOW_MODE_WINDOWED, + WINDOW_MODE_MINIMIZED, + WINDOW_MODE_MAXIMIZED, + WINDOW_MODE_FULLSCREEN, + WINDOW_MODE_EXCLUSIVE_FULLSCREEN, +}; + +enum WindowFlags { + WINDOW_FLAG_RESIZE_DISABLED, + WINDOW_FLAG_BORDERLESS, + WINDOW_FLAG_ALWAYS_ON_TOP, + WINDOW_FLAG_TRANSPARENT, + WINDOW_FLAG_NO_FOCUS, + WINDOW_FLAG_POPUP, + WINDOW_FLAG_EXTEND_TO_TITLE, + WINDOW_FLAG_MOUSE_PASSTHROUGH, + WINDOW_FLAG_SHARP_CORNERS, + WINDOW_FLAG_EXCLUDE_FROM_CAPTURE, + WINDOW_FLAG_POPUP_WM_HINT, + WINDOW_FLAG_MINIMIZE_DISABLED, + WINDOW_FLAG_MAXIMIZE_DISABLED, + WINDOW_FLAG_MAX, +}; + +// Separate enum otherwise we get warnings in switches not handling all values. +enum WindowFlagsBit { + WINDOW_FLAG_RESIZE_DISABLED_BIT = (1 << WINDOW_FLAG_RESIZE_DISABLED), + WINDOW_FLAG_BORDERLESS_BIT = (1 << WINDOW_FLAG_BORDERLESS), + WINDOW_FLAG_ALWAYS_ON_TOP_BIT = (1 << WINDOW_FLAG_ALWAYS_ON_TOP), + WINDOW_FLAG_TRANSPARENT_BIT = (1 << WINDOW_FLAG_TRANSPARENT), + WINDOW_FLAG_NO_FOCUS_BIT = (1 << WINDOW_FLAG_NO_FOCUS), + WINDOW_FLAG_POPUP_BIT = (1 << WINDOW_FLAG_POPUP), + WINDOW_FLAG_EXTEND_TO_TITLE_BIT = (1 << WINDOW_FLAG_EXTEND_TO_TITLE), + WINDOW_FLAG_MOUSE_PASSTHROUGH_BIT = (1 << WINDOW_FLAG_MOUSE_PASSTHROUGH), + WINDOW_FLAG_SHARP_CORNERS_BIT = (1 << WINDOW_FLAG_SHARP_CORNERS), + WINDOW_FLAG_EXCLUDE_FROM_CAPTURE_BIT = (1 << WINDOW_FLAG_EXCLUDE_FROM_CAPTURE), + WINDOW_FLAG_POPUP_WM_HINT_BIT = (1 << WINDOW_FLAG_POPUP_WM_HINT), + WINDOW_FLAG_MINIMIZE_DISABLED_BIT = (1 << WINDOW_FLAG_MINIMIZE_DISABLED), + WINDOW_FLAG_MAXIMIZE_DISABLED_BIT = (1 << WINDOW_FLAG_MAXIMIZE_DISABLED), +}; + +enum WindowEvent { + WINDOW_EVENT_MOUSE_ENTER, + WINDOW_EVENT_MOUSE_EXIT, + WINDOW_EVENT_FOCUS_IN, + WINDOW_EVENT_FOCUS_OUT, + WINDOW_EVENT_CLOSE_REQUEST, + WINDOW_EVENT_GO_BACK_REQUEST, + WINDOW_EVENT_DPI_CHANGE, + WINDOW_EVENT_TITLEBAR_CHANGE, + WINDOW_EVENT_FORCE_CLOSE, +}; + +enum WindowResizeEdge { + WINDOW_EDGE_TOP_LEFT, + WINDOW_EDGE_TOP, + WINDOW_EDGE_TOP_RIGHT, + WINDOW_EDGE_LEFT, + WINDOW_EDGE_RIGHT, + WINDOW_EDGE_BOTTOM_LEFT, + WINDOW_EDGE_BOTTOM, + WINDOW_EDGE_BOTTOM_RIGHT, + WINDOW_EDGE_MAX, +}; + +// Keep the VSyncMode enum values in sync with the `display/window/vsync/vsync_mode` +// project setting hint. +enum VSyncMode { + VSYNC_DISABLED, + VSYNC_ENABLED, + VSYNC_ADAPTIVE, + VSYNC_MAILBOX +}; + +enum ProgressState { + PROGRESS_STATE_NOPROGRESS, + PROGRESS_STATE_INDETERMINATE, + PROGRESS_STATE_NORMAL, + PROGRESS_STATE_ERROR, + PROGRESS_STATE_PAUSED, +}; + +/* DIALOGS */ + +enum FileDialogMode { + FILE_DIALOG_MODE_OPEN_FILE, + FILE_DIALOG_MODE_OPEN_FILES, + FILE_DIALOG_MODE_OPEN_DIR, + FILE_DIALOG_MODE_OPEN_ANY, + FILE_DIALOG_MODE_SAVE_FILE, + FILE_DIALOG_MODE_SAVE_MAX +}; + +/* STATUS INDICATOR */ + +typedef int IndicatorID; + +#ifndef DISABLE_DEPRECATED + +/* ACCESSIBILITY */ + +enum AccessibilityRole { + ROLE_UNKNOWN, + ROLE_DEFAULT_BUTTON, + ROLE_AUDIO, + ROLE_VIDEO, + ROLE_STATIC_TEXT, + ROLE_CONTAINER, + ROLE_PANEL, + ROLE_BUTTON, + ROLE_LINK, + ROLE_CHECK_BOX, + ROLE_RADIO_BUTTON, + ROLE_CHECK_BUTTON, + ROLE_SCROLL_BAR, + ROLE_SCROLL_VIEW, + ROLE_SPLITTER, + ROLE_SLIDER, + ROLE_SPIN_BUTTON, + ROLE_PROGRESS_INDICATOR, + ROLE_TEXT_FIELD, + ROLE_MULTILINE_TEXT_FIELD, + ROLE_COLOR_PICKER, + ROLE_TABLE, + ROLE_CELL, + ROLE_ROW, + ROLE_ROW_GROUP, + ROLE_ROW_HEADER, + ROLE_COLUMN_HEADER, + ROLE_TREE, + ROLE_TREE_ITEM, + ROLE_LIST, + ROLE_LIST_ITEM, + ROLE_LIST_BOX, + ROLE_LIST_BOX_OPTION, + ROLE_TAB_BAR, + ROLE_TAB, + ROLE_TAB_PANEL, + ROLE_MENU_BAR, + ROLE_MENU, + ROLE_MENU_ITEM, + ROLE_MENU_ITEM_CHECK_BOX, + ROLE_MENU_ITEM_RADIO, + ROLE_IMAGE, + ROLE_WINDOW, + ROLE_TITLE_BAR, + ROLE_DIALOG, + ROLE_TOOLTIP, + ROLE_REGION, + ROLE_TEXT_RUN, +}; + +enum AccessibilityPopupType { + POPUP_MENU, + POPUP_LIST, + POPUP_TREE, + POPUP_DIALOG, +}; + +enum AccessibilityFlags { + FLAG_HIDDEN, + FLAG_MULTISELECTABLE, + FLAG_REQUIRED, + FLAG_VISITED, + FLAG_BUSY, + FLAG_MODAL, + FLAG_TOUCH_PASSTHROUGH, + FLAG_READONLY, + FLAG_DISABLED, + FLAG_CLIPS_CHILDREN, +}; + +enum AccessibilityAction { + ACTION_CLICK, + ACTION_FOCUS, + ACTION_BLUR, + ACTION_COLLAPSE, + ACTION_EXPAND, + ACTION_DECREMENT, + ACTION_INCREMENT, + ACTION_HIDE_TOOLTIP, + ACTION_SHOW_TOOLTIP, + ACTION_SET_TEXT_SELECTION, + ACTION_REPLACE_SELECTED_TEXT, + ACTION_SCROLL_BACKWARD, + ACTION_SCROLL_DOWN, + ACTION_SCROLL_FORWARD, + ACTION_SCROLL_LEFT, + ACTION_SCROLL_RIGHT, + ACTION_SCROLL_UP, + ACTION_SCROLL_INTO_VIEW, + ACTION_SCROLL_TO_POINT, + ACTION_SET_SCROLL_OFFSET, + ACTION_SET_VALUE, + ACTION_SHOW_CONTEXT_MENU, + ACTION_CUSTOM, +}; + +enum AccessibilityLiveMode { + LIVE_OFF, + LIVE_POLITE, + LIVE_ASSERTIVE, +}; + +enum AccessibilityScrollUnit { + SCROLL_UNIT_ITEM, + SCROLL_UNIT_PAGE, +}; + +enum AccessibilityScrollHint { + SCROLL_HINT_TOP_LEFT, + SCROLL_HINT_BOTTOM_RIGHT, + SCROLL_HINT_TOP_EDGE, + SCROLL_HINT_BOTTOM_EDGE, + SCROLL_HINT_LEFT_EDGE, + SCROLL_HINT_RIGHT_EDGE, +}; + +#endif // DISABLE_DEPRECATED + +} // namespace DisplayServerEnums diff --git a/servers/display/display_server_headless.cpp b/servers/display/display_server_headless.cpp index 5f9e1ac4a7d5..1e35d5e7dff4 100644 --- a/servers/display/display_server_headless.cpp +++ b/servers/display/display_server_headless.cpp @@ -35,7 +35,7 @@ #include "servers/display/native_menu.h" #include "servers/rendering/dummy/rasterizer_dummy.h" -DisplayServer *DisplayServerHeadless::create_func(const String &p_rendering_driver, DisplayServer::WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServer *DisplayServerHeadless::create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { r_error = OK; RasterizerDummy::make_current(); return memnew(DisplayServerHeadless()); diff --git a/servers/display/display_server_headless.h b/servers/display/display_server_headless.h index eb1e57b605f1..d5c13fd231c0 100644 --- a/servers/display/display_server_headless.h +++ b/servers/display/display_server_headless.h @@ -47,7 +47,7 @@ class DisplayServerHeadless : public DisplayServer { return drivers; } - static DisplayServer *create_func(const String &p_rendering_driver, DisplayServer::WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + static DisplayServer *create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); static void _dispatch_input_events(const Ref &p_event); void _dispatch_input_event(const Ref &p_event); @@ -56,7 +56,7 @@ class DisplayServerHeadless : public DisplayServer { Callable input_event_callback; public: - bool has_feature(Feature p_feature) const override { return false; } + bool has_feature(DisplayServerEnums::Feature p_feature) const override { return false; } String get_name() const override { return "headless"; } // Stub implementations to prevent warnings from being printed for methods @@ -64,86 +64,86 @@ class DisplayServerHeadless : public DisplayServer { int get_screen_count() const override { return 0; } int get_primary_screen() const override { return 0; } - Point2i screen_get_position(int p_screen = SCREEN_OF_MAIN_WINDOW) const override { return Point2i(); } - Size2i screen_get_size(int p_screen = SCREEN_OF_MAIN_WINDOW) const override { return Size2i(); } - Rect2i screen_get_usable_rect(int p_screen = SCREEN_OF_MAIN_WINDOW) const override { return Rect2i(); } - int screen_get_dpi(int p_screen = SCREEN_OF_MAIN_WINDOW) const override { return 96; /* 0 might cause issues */ } - float screen_get_scale(int p_screen = SCREEN_OF_MAIN_WINDOW) const override { return 1; } + Point2i screen_get_position(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override { return Point2i(); } + Size2i screen_get_size(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override { return Size2i(); } + Rect2i screen_get_usable_rect(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override { return Rect2i(); } + int screen_get_dpi(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override { return 96; /* 0 might cause issues */ } + float screen_get_scale(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override { return 1; } float screen_get_max_scale() const override { return 1; } - float screen_get_refresh_rate(int p_screen = SCREEN_OF_MAIN_WINDOW) const override { return SCREEN_REFRESH_RATE_FALLBACK; } - void screen_set_orientation(ScreenOrientation p_orientation, int p_screen = SCREEN_OF_MAIN_WINDOW) override {} + float screen_get_refresh_rate(int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) const override { return SCREEN_REFRESH_RATE_FALLBACK; } + void screen_set_orientation(DisplayServerEnums::ScreenOrientation p_orientation, int p_screen = DisplayServerEnums::SCREEN_OF_MAIN_WINDOW) override {} void screen_set_keep_on(bool p_enable) override {} - Vector get_window_list() const override { return Vector(); } + Vector get_window_list() const override { return Vector(); } - WindowID create_sub_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect = Rect2i(), bool p_exclusive = false, WindowID p_transient_parent = INVALID_WINDOW_ID) override { return 0; } - void show_window(WindowID p_id) override {} - void delete_sub_window(WindowID p_id) override {} + DisplayServerEnums::WindowID create_sub_window(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect = Rect2i(), bool p_exclusive = false, DisplayServerEnums::WindowID p_transient_parent = DisplayServerEnums::INVALID_WINDOW_ID) override { return 0; } + void show_window(DisplayServerEnums::WindowID p_id) override {} + void delete_sub_window(DisplayServerEnums::WindowID p_id) override {} - WindowID get_window_at_screen_position(const Point2i &p_position) const override { return 0; } + DisplayServerEnums::WindowID get_window_at_screen_position(const Point2i &p_position) const override { return 0; } - void window_attach_instance_id(ObjectID p_instance, WindowID p_window = MAIN_WINDOW_ID) override {} - ObjectID window_get_attached_instance_id(WindowID p_window = MAIN_WINDOW_ID) const override { return ObjectID(); } + void window_attach_instance_id(ObjectID p_instance, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + ObjectID window_get_attached_instance_id(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return ObjectID(); } - void window_set_rect_changed_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override {} + void window_set_rect_changed_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} - void window_set_window_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override {} + void window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} - void window_set_input_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override { + void window_set_input_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override { input_event_callback = p_callable; } - void window_set_input_text_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override {} - void window_set_drop_files_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override {} + void window_set_input_text_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + void window_set_drop_files_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} - void window_set_title(const String &p_title, WindowID p_window = MAIN_WINDOW_ID) override {} + void window_set_title(const String &p_title, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} - void window_set_mouse_passthrough(const Vector &p_region, WindowID p_window = MAIN_WINDOW_ID) override {} + void window_set_mouse_passthrough(const Vector &p_region, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} - int window_get_current_screen(WindowID p_window = MAIN_WINDOW_ID) const override { return INVALID_SCREEN; } - void window_set_current_screen(int p_screen, WindowID p_window = MAIN_WINDOW_ID) override {} + int window_get_current_screen(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return DisplayServerEnums::INVALID_SCREEN; } + void window_set_current_screen(int p_screen, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} - Point2i window_get_position(WindowID p_window = MAIN_WINDOW_ID) const override { return Point2i(); } - Point2i window_get_position_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override { return Point2i(); } - void window_set_position(const Point2i &p_position, WindowID p_window = MAIN_WINDOW_ID) override {} + Point2i window_get_position(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return Point2i(); } + Point2i window_get_position_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return Point2i(); } + void window_set_position(const Point2i &p_position, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} - void window_set_transient(WindowID p_window, WindowID p_parent) override {} + void window_set_transient(DisplayServerEnums::WindowID p_window, DisplayServerEnums::WindowID p_parent) override {} - void window_set_max_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override {} - Size2i window_get_max_size(WindowID p_window = MAIN_WINDOW_ID) const override { return Size2i(); } + void window_set_max_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + Size2i window_get_max_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return Size2i(); } - void window_set_min_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override {} - Size2i window_get_min_size(WindowID p_window = MAIN_WINDOW_ID) const override { return Size2i(); } + void window_set_min_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + Size2i window_get_min_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return Size2i(); } - void window_set_size(const Size2i p_size, WindowID p_window = MAIN_WINDOW_ID) override {} - Size2i window_get_size(WindowID p_window = MAIN_WINDOW_ID) const override { return Size2i(); } - Size2i window_get_size_with_decorations(WindowID p_window = MAIN_WINDOW_ID) const override { return Size2i(); } + void window_set_size(const Size2i p_size, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + Size2i window_get_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return Size2i(); } + Size2i window_get_size_with_decorations(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return Size2i(); } - void window_set_mode(WindowMode p_mode, WindowID p_window = MAIN_WINDOW_ID) override {} - WindowMode window_get_mode(WindowID p_window = MAIN_WINDOW_ID) const override { return WINDOW_MODE_MINIMIZED; } + void window_set_mode(DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + DisplayServerEnums::WindowMode window_get_mode(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return DisplayServerEnums::WINDOW_MODE_MINIMIZED; } - void window_set_vsync_mode(VSyncMode p_vsync_mode, WindowID p_window = MAIN_WINDOW_ID) override {} - VSyncMode window_get_vsync_mode(WindowID p_window) const override { return VSyncMode::VSYNC_ENABLED; } + void window_set_vsync_mode(DisplayServerEnums::VSyncMode p_vsync_mode, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + DisplayServerEnums::VSyncMode window_get_vsync_mode(DisplayServerEnums::WindowID p_window) const override { return DisplayServerEnums::VSyncMode::VSYNC_ENABLED; } - bool window_is_maximize_allowed(WindowID p_window = MAIN_WINDOW_ID) const override { return false; } + bool window_is_maximize_allowed(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return false; } - void window_set_flag(WindowFlags p_flag, bool p_enabled, WindowID p_window = MAIN_WINDOW_ID) override {} - bool window_get_flag(WindowFlags p_flag, WindowID p_window = MAIN_WINDOW_ID) const override { return false; } + void window_set_flag(DisplayServerEnums::WindowFlags p_flag, bool p_enabled, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + bool window_get_flag(DisplayServerEnums::WindowFlags p_flag, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return false; } - void window_request_attention(WindowID p_window = MAIN_WINDOW_ID) override {} - void window_set_taskbar_progress_value(float p_value, WindowID p_window = MAIN_WINDOW_ID) override {} - void window_set_taskbar_progress_state(ProgressState p_state, WindowID p_window = MAIN_WINDOW_ID) override {} - void window_move_to_foreground(WindowID p_window = MAIN_WINDOW_ID) override {} - bool window_is_focused(WindowID p_window = MAIN_WINDOW_ID) const override { return true; } + void window_request_attention(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + void window_set_taskbar_progress_value(float p_value, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + void window_set_taskbar_progress_state(DisplayServerEnums::ProgressState p_state, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + void window_move_to_foreground(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + bool window_is_focused(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return true; } - bool window_can_draw(WindowID p_window = MAIN_WINDOW_ID) const override { return false; } + bool window_can_draw(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return false; } bool can_any_window_draw() const override { return false; } - void window_set_ime_active(const bool p_active, WindowID p_window = MAIN_WINDOW_ID) override {} - void window_set_ime_position(const Point2i &p_pos, WindowID p_window = MAIN_WINDOW_ID) override {} + void window_set_ime_active(const bool p_active, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} + void window_set_ime_position(const Point2i &p_pos, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override {} - int64_t window_get_native_handle(HandleType p_handle_type, WindowID p_window = MAIN_WINDOW_ID) const override { return 0; } + int64_t window_get_native_handle(DisplayServerEnums::HandleType p_handle_type, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return 0; } void process_events() override; @@ -160,32 +160,32 @@ class DisplayServerHeadless : public DisplayServer { void tts_resume() override {} void tts_stop() override {} - void mouse_set_mode(MouseMode p_mode) override {} - void mouse_set_mode_override(MouseMode p_mode) override {} + void mouse_set_mode(DisplayServerEnums::MouseMode p_mode) override {} + void mouse_set_mode_override(DisplayServerEnums::MouseMode p_mode) override {} void mouse_set_mode_override_enabled(bool p_override_enabled) override {} Point2i mouse_get_position() const override { return Point2i(); } void clipboard_set(const String &p_text) override {} void clipboard_set_primary(const String &p_text) override {} - void virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2(), VirtualKeyboardType p_type = KEYBOARD_TYPE_DEFAULT, int p_max_length = -1, int p_cursor_start = -1, int p_cursor_end = -1) override {} + void virtual_keyboard_show(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2(), DisplayServerEnums::VirtualKeyboardType p_type = DisplayServerEnums::KEYBOARD_TYPE_DEFAULT, int p_max_length = -1, int p_cursor_start = -1, int p_cursor_end = -1) override {} void virtual_keyboard_hide() override {} - void cursor_set_shape(CursorShape p_shape) override {} - void cursor_set_custom_image(const Ref &p_cursor, CursorShape p_shape = CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()) override {} + void cursor_set_shape(DisplayServerEnums::CursorShape p_shape) override {} + void cursor_set_custom_image(const Ref &p_cursor, DisplayServerEnums::CursorShape p_shape = DisplayServerEnums::CURSOR_ARROW, const Vector2 &p_hotspot = Vector2()) override {} Error dialog_show(String p_title, String p_description, Vector p_buttons, const Callable &p_callback) override { return ERR_UNAVAILABLE; } Error dialog_input_text(String p_title, String p_description, String p_partial, const Callable &p_callback) override { return ERR_UNAVAILABLE; } - Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, WindowID p_window_id) override { return ERR_UNAVAILABLE; } - Error file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, WindowID p_window_id) override { return ERR_UNAVAILABLE; } + Error file_dialog_show(const String &p_title, const String &p_current_directory, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) override { return ERR_UNAVAILABLE; } + Error file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, DisplayServerEnums::FileDialogMode p_mode, const Vector &p_filters, const TypedArray &p_options, const Callable &p_callback, DisplayServerEnums::WindowID p_window_id) override { return ERR_UNAVAILABLE; } void release_rendering_thread() override {} void swap_buffers() override {} - IndicatorID create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback) override { return INVALID_INDICATOR_ID; } - void status_indicator_set_icon(IndicatorID p_id, const Ref &p_icon) override {} - void status_indicator_set_tooltip(IndicatorID p_id, const String &p_tooltip) override {} - void status_indicator_set_callback(IndicatorID p_id, const Callable &p_callback) override {} - void delete_status_indicator(IndicatorID p_id) override {} + DisplayServerEnums::IndicatorID create_status_indicator(const Ref &p_icon, const String &p_tooltip, const Callable &p_callback) override { return DisplayServerEnums::INVALID_INDICATOR_ID; } + void status_indicator_set_icon(DisplayServerEnums::IndicatorID p_id, const Ref &p_icon) override {} + void status_indicator_set_tooltip(DisplayServerEnums::IndicatorID p_id, const String &p_tooltip) override {} + void status_indicator_set_callback(DisplayServerEnums::IndicatorID p_id, const Callable &p_callback) override {} + void delete_status_indicator(DisplayServerEnums::IndicatorID p_id) override {} DisplayServerHeadless(); ~DisplayServerHeadless(); diff --git a/servers/movie_writer/movie_writer.cpp b/servers/movie_writer/movie_writer.cpp index f47b675d8314..1f245a8b3604 100644 --- a/servers/movie_writer/movie_writer.cpp +++ b/servers/movie_writer/movie_writer.cpp @@ -37,7 +37,7 @@ #include "core/templates/rb_set.h" #include "scene/main/window.h" #include "servers/audio/audio_driver_dummy.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #include "servers/rendering/rendering_server.h" MovieWriter *MovieWriter::writers[MovieWriter::MAX_WRITERS]; @@ -190,12 +190,12 @@ void MovieWriter::add_frame() { String::num(movie_time_seconds % 60, 0).pad_zeros(2), String::num(frame_remainder, 0).pad_zeros(2)); - Window *main_window = Window::get_from_id(DisplayServer::MAIN_WINDOW_ID); + Window *main_window = Window::get_from_id(DisplayServerEnums::MAIN_WINDOW_ID); if (main_window) { main_window->set_title(vformat("MovieWriter: Frame %d (time: %s) - %s", Engine::get_singleton()->get_frames_drawn(), movie_time, project_name)); } - RID main_vp_rid = RenderingServer::get_singleton()->viewport_find_from_screen_attachment(DisplayServer::MAIN_WINDOW_ID); + RID main_vp_rid = RenderingServer::get_singleton()->viewport_find_from_screen_attachment(DisplayServerEnums::MAIN_WINDOW_ID); RID main_vp_texture = RenderingServer::get_singleton()->viewport_get_texture(main_vp_rid); Ref vp_tex = RenderingServer::get_singleton()->texture_2d_get(main_vp_texture); diff --git a/servers/rendering/renderer_compositor.h b/servers/rendering/renderer_compositor.h index 964af9384aff..418cad2ed7e1 100644 --- a/servers/rendering/renderer_compositor.h +++ b/servers/rendering/renderer_compositor.h @@ -30,7 +30,7 @@ #pragma once -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #include "servers/rendering/rendering_server_enums.h" #include "servers/rendering/rendering_server_types.h" @@ -79,7 +79,7 @@ class RendererCompositor { virtual void initialize() = 0; virtual void begin_frame(double frame_step) = 0; - virtual void blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) = 0; + virtual void blit_render_targets_to_screen(DisplayServerEnums::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) = 0; virtual bool is_opengl() = 0; virtual void gl_end_frame(bool p_swap_buffers) = 0; diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp index eb08f59b6007..59f114c810e9 100644 --- a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp @@ -32,11 +32,12 @@ #include "core/config/project_settings.h" #include "core/io/dir_access.h" +#include "servers/display/display_server.h" #include "servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h" #include "servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h" #include "servers/rendering/rendering_server_types.h" -void RendererCompositorRD::blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) { +void RendererCompositorRD::blit_render_targets_to_screen(DisplayServerEnums::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) { Error err = RD::get_singleton()->screen_prepare_for_drawing(p_screen); if (err != OK) { // Window is minimized and does not have valid swapchain, skip drawing without printing errors. @@ -213,13 +214,13 @@ void RendererCompositorRD::set_boot_image_with_stretch(const Ref &p_image return; } - Error err = RD::get_singleton()->screen_prepare_for_drawing(DisplayServer::MAIN_WINDOW_ID); + Error err = RD::get_singleton()->screen_prepare_for_drawing(DisplayServerEnums::MAIN_WINDOW_ID); if (err != OK) { // Window is minimized and does not have valid swapchain, skip drawing without printing errors. return; } - BlitPipelines blit_pipelines = _get_blit_pipelines_for_format(RD::get_singleton()->screen_get_framebuffer_format(DisplayServer::MAIN_WINDOW_ID)); + BlitPipelines blit_pipelines = _get_blit_pipelines_for_format(RD::get_singleton()->screen_get_framebuffer_format(DisplayServerEnums::MAIN_WINDOW_ID)); RID texture = texture_storage->texture_allocate(); texture_storage->texture_2d_initialize(texture, p_image); @@ -249,10 +250,10 @@ void RendererCompositorRD::set_boot_image_with_stretch(const Ref &p_image screenrect.position /= window_size; screenrect.size /= window_size; - const RD::ColorSpace color_space = RD::get_singleton()->screen_get_color_space(DisplayServer::MAIN_WINDOW_ID); - const float reference_luminance = RD::get_singleton()->get_context_driver()->window_get_hdr_output_reference_luminance(DisplayServer::MAIN_WINDOW_ID); - const float linear_luminance_scale = RD::get_singleton()->get_context_driver()->window_get_hdr_output_linear_luminance_scale(DisplayServer::MAIN_WINDOW_ID); - const float output_max_value = RD::get_singleton()->get_context_driver()->window_get_output_max_linear_value(DisplayServer::MAIN_WINDOW_ID); + const RD::ColorSpace color_space = RD::get_singleton()->screen_get_color_space(DisplayServerEnums::MAIN_WINDOW_ID); + const float reference_luminance = RD::get_singleton()->get_context_driver()->window_get_hdr_output_reference_luminance(DisplayServerEnums::MAIN_WINDOW_ID); + const float linear_luminance_scale = RD::get_singleton()->get_context_driver()->window_get_hdr_output_linear_luminance_scale(DisplayServerEnums::MAIN_WINDOW_ID); + const float output_max_value = RD::get_singleton()->get_context_driver()->window_get_output_max_linear_value(DisplayServerEnums::MAIN_WINDOW_ID); const float reference_multiplier = _compute_reference_multiplier(color_space, reference_luminance, linear_luminance_scale); Color clear_color = p_color; @@ -265,13 +266,13 @@ void RendererCompositorRD::set_boot_image_with_stretch(const Ref &p_image clear_color.b *= reference_multiplier; } - RD::DrawListID draw_list = RD::get_singleton()->draw_list_begin_for_screen(DisplayServer::MAIN_WINDOW_ID, clear_color); + RD::DrawListID draw_list = RD::get_singleton()->draw_list_begin_for_screen(DisplayServerEnums::MAIN_WINDOW_ID, clear_color); RD::get_singleton()->draw_list_bind_render_pipeline(draw_list, blit_pipelines.pipelines[BLIT_MODE_NORMAL_ALPHA]); RD::get_singleton()->draw_list_bind_index_array(draw_list, blit.array); RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uset, 0); - const int screen_rotation_degrees = -RD::get_singleton()->screen_get_pre_rotation_degrees(DisplayServer::MAIN_WINDOW_ID); + const int screen_rotation_degrees = -RD::get_singleton()->screen_get_pre_rotation_degrees(DisplayServerEnums::MAIN_WINDOW_ID); float screen_rotation = Math::deg_to_rad((float)screen_rotation_degrees); blit.push_constant.rotation_cos = Math::cos(screen_rotation); blit.push_constant.rotation_sin = Math::sin(screen_rotation); diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.h b/servers/rendering/renderer_rd/renderer_compositor_rd.h index 4790aca87364..506190968abf 100644 --- a/servers/rendering/renderer_rd/renderer_compositor_rd.h +++ b/servers/rendering/renderer_rd/renderer_compositor_rd.h @@ -136,7 +136,7 @@ class RendererCompositorRD : public RendererCompositor { virtual void initialize() override; virtual void begin_frame(double frame_step) override; - virtual void blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) override; + virtual void blit_render_targets_to_screen(DisplayServerEnums::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) override; virtual bool is_opengl() override { return false; } virtual void gl_end_frame(bool p_swap_buffers) override {} diff --git a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp index 8a577dc85c17..de3b3554fdc9 100644 --- a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp +++ b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp @@ -34,7 +34,7 @@ #include "core/object/class_db.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" #include "servers/rendering/rendering_device_binds.h" -#include "servers/rendering/rendering_server.h" // IWYU pragma: Needed to bind RSE enums. +#include "servers/rendering/rendering_server.h" // IWYU pragma: keep // Needed to bind RSE enums. #include "servers/rendering/rendering_server_enums.h" RenderSceneBuffersRD::RenderSceneBuffersRD() { diff --git a/servers/rendering/renderer_scene_occlusion_cull.cpp b/servers/rendering/renderer_scene_occlusion_cull.cpp index 0b7bdb02416c..1ca7520a4245 100644 --- a/servers/rendering/renderer_scene_occlusion_cull.cpp +++ b/servers/rendering/renderer_scene_occlusion_cull.cpp @@ -30,6 +30,7 @@ #include "renderer_scene_occlusion_cull.h" +#include "core/config/engine.h" #include "servers/rendering/rendering_server.h" RendererSceneOcclusionCull *RendererSceneOcclusionCull::singleton = nullptr; diff --git a/servers/rendering/renderer_viewport.cpp b/servers/rendering/renderer_viewport.cpp index 78a165de1644..843ae6393845 100644 --- a/servers/rendering/renderer_viewport.cpp +++ b/servers/rendering/renderer_viewport.cpp @@ -34,6 +34,7 @@ #include "core/math/transform_interpolator.h" #include "core/object/worker_thread_pool.h" #include "core/profiling/profiling.h" +#include "servers/display/display_server.h" #include "servers/rendering/renderer_canvas_cull.h" #include "servers/rendering/renderer_compositor.h" #include "servers/rendering/renderer_scene_cull.h" @@ -362,8 +363,8 @@ void RendererViewport::_draw_viewport(Viewport *p_viewport) { } p_viewport->window_output_max_value = 1.0; - DisplayServer::WindowID parent_window = _get_containing_window(p_viewport); - if (RD::get_singleton() && parent_window != DisplayServer::INVALID_WINDOW_ID) { + DisplayServerEnums::WindowID parent_window = _get_containing_window(p_viewport); + if (RD::get_singleton() && parent_window != DisplayServerEnums::INVALID_WINDOW_ID) { RenderingContextDriver *context_driver = RD::get_singleton()->get_context_driver(); if (context_driver->window_get_hdr_output_enabled(parent_window)) { p_viewport->window_output_max_value = context_driver->window_get_output_max_linear_value(parent_window); @@ -745,8 +746,8 @@ void RendererViewport::_draw_viewport(Viewport *p_viewport) { } } -DisplayServer::WindowID RendererViewport::_get_containing_window(Viewport *p_viewport) { - if (p_viewport->viewport_to_screen != DisplayServer::INVALID_WINDOW_ID) { +DisplayServerEnums::WindowID RendererViewport::_get_containing_window(Viewport *p_viewport) { + if (p_viewport->viewport_to_screen != DisplayServerEnums::INVALID_WINDOW_ID) { return p_viewport->viewport_to_screen; } @@ -757,7 +758,7 @@ DisplayServer::WindowID RendererViewport::_get_containing_window(Viewport *p_vie } } - return DisplayServer::INVALID_WINDOW_ID; + return DisplayServerEnums::INVALID_WINDOW_ID; } void RendererViewport::draw_viewports(bool p_swap_buffers) { @@ -784,7 +785,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { sorted_active_viewports_dirty = false; } - HashMap> blit_to_screen_list; + HashMap> blit_to_screen_list; //draw viewports RENDER_TIMESTAMP("> Render Viewports"); @@ -884,7 +885,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { // commit our eyes Vector blits = xr_interface->post_draw_viewport(vp->render_target, vp->viewport_to_screen_rect); - if (vp->viewport_to_screen != DisplayServer::INVALID_WINDOW_ID) { + if (vp->viewport_to_screen != DisplayServerEnums::INVALID_WINDOW_ID) { if (RSG::rasterizer->is_opengl()) { if (blits.size() > 0) { RSG::rasterizer->blit_render_targets_to_screen(vp->viewport_to_screen, blits.ptr(), blits.size()); @@ -909,7 +910,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { // render standard mono camera _draw_viewport(vp); - if (vp->viewport_to_screen != DisplayServer::INVALID_WINDOW_ID && (!vp->viewport_render_direct_to_screen || !RSG::rasterizer->is_low_end())) { + if (vp->viewport_to_screen != DisplayServerEnums::INVALID_WINDOW_ID && (!vp->viewport_render_direct_to_screen || !RSG::rasterizer->is_low_end())) { //copy to screen if set as such RenderingServerTypes::BlitToScreen blit; blit.render_target = vp->render_target; @@ -1132,11 +1133,11 @@ void RendererViewport::viewport_set_clear_mode(RID p_viewport, RSE::ViewportClea viewport->clear_mode = p_clear_mode; } -void RendererViewport::viewport_attach_to_screen(RID p_viewport, const Rect2 &p_rect, DisplayServer::WindowID p_screen) { +void RendererViewport::viewport_attach_to_screen(RID p_viewport, const Rect2 &p_rect, DisplayServerEnums::WindowID p_screen) { Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); - if (p_screen != DisplayServer::INVALID_WINDOW_ID) { + if (p_screen != DisplayServerEnums::INVALID_WINDOW_ID) { // If using OpenGL we can optimize this operation by rendering directly to system_fbo // instead of rendering to fbo and copying to system_fbo after if (RSG::rasterizer->is_low_end() && viewport->viewport_render_direct_to_screen) { @@ -1154,7 +1155,7 @@ void RendererViewport::viewport_attach_to_screen(RID p_viewport, const Rect2 &p_ } viewport->viewport_to_screen_rect = Rect2(); - viewport->viewport_to_screen = DisplayServer::INVALID_WINDOW_ID; + viewport->viewport_to_screen = DisplayServerEnums::INVALID_WINDOW_ID; } } @@ -1604,7 +1605,7 @@ void RendererViewport::viewport_set_sdf_oversize_and_scale(RID p_viewport, RSE:: RSG::texture_storage->render_target_set_sdf_size_and_scale(viewport->render_target, p_size, p_scale); } -RID RendererViewport::viewport_find_from_screen_attachment(DisplayServer::WindowID p_id) const { +RID RendererViewport::viewport_find_from_screen_attachment(DisplayServerEnums::WindowID p_id) const { RID *rids = nullptr; uint32_t rid_count = viewport_owner.get_rid_count(); rids = (RID *)alloca(sizeof(RID) * rid_count); @@ -1704,7 +1705,7 @@ void RendererViewport::viewport_set_canvas_cull_mask(RID p_viewport, uint32_t p_ } // Workaround for setting this on thread. -void RendererViewport::call_set_vsync_mode(DisplayServer::VSyncMode p_mode, DisplayServer::WindowID p_window) { +void RendererViewport::call_set_vsync_mode(DisplayServerEnums::VSyncMode p_mode, DisplayServerEnums::WindowID p_window) { DisplayServer::get_singleton()->window_set_vsync_mode(p_mode, p_window); } diff --git a/servers/rendering/renderer_viewport.h b/servers/rendering/renderer_viewport.h index e4c07d349fd7..2c70de5eb894 100644 --- a/servers/rendering/renderer_viewport.h +++ b/servers/rendering/renderer_viewport.h @@ -31,7 +31,7 @@ #pragma once #include "core/templates/rid_owner.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #include "servers/rendering/renderer_scene_render.h" #include "servers/rendering/rendering_server_enums.h" #include "servers/rendering/rendering_server_types.h" @@ -80,7 +80,7 @@ class RendererViewport { bool use_occlusion_culling = false; bool occlusion_buffer_dirty = false; - DisplayServer::WindowID viewport_to_screen = DisplayServer::INVALID_WINDOW_ID; + DisplayServerEnums::WindowID viewport_to_screen = DisplayServerEnums::INVALID_WINDOW_ID; Rect2 viewport_to_screen_rect; bool viewport_render_direct_to_screen = false; @@ -162,7 +162,7 @@ class RendererViewport { use_hdr_2d = false; window_output_max_value = 1.0; - viewport_to_screen = DisplayServer::INVALID_WINDOW_ID; + viewport_to_screen = DisplayServerEnums::INVALID_WINDOW_ID; shadow_atlas_size = 0; measure_render_time = false; @@ -210,7 +210,7 @@ class RendererViewport { void _configure_3d_render_buffers(Viewport *p_viewport); void _draw_3d(Viewport *p_viewport); void _draw_viewport(Viewport *p_viewport); - DisplayServer::WindowID _get_containing_window(Viewport *p_viewport); + DisplayServerEnums::WindowID _get_containing_window(Viewport *p_viewport); int occlusion_rays_per_thread = 512; @@ -226,7 +226,7 @@ class RendererViewport { void viewport_set_size(RID p_viewport, int p_width, int p_height, int p_view_count = 1); - void viewport_attach_to_screen(RID p_viewport, const Rect2 &p_rect = Rect2(), DisplayServer::WindowID p_screen = DisplayServer::MAIN_WINDOW_ID); + void viewport_attach_to_screen(RID p_viewport, const Rect2 &p_rect = Rect2(), DisplayServerEnums::WindowID p_screen = DisplayServerEnums::MAIN_WINDOW_ID); void viewport_set_render_direct_to_screen(RID p_viewport, bool p_enable); void viewport_set_active(RID p_viewport, bool p_active); @@ -301,7 +301,7 @@ class RendererViewport { void viewport_set_sdf_oversize_and_scale(RID p_viewport, RSE::ViewportSDFOversize p_over_size, RSE::ViewportSDFScale p_scale); - virtual RID viewport_find_from_screen_attachment(DisplayServer::WindowID p_id = DisplayServer::MAIN_WINDOW_ID) const; + virtual RID viewport_find_from_screen_attachment(DisplayServerEnums::WindowID p_id = DisplayServerEnums::MAIN_WINDOW_ID) const; void viewport_set_vrs_mode(RID p_viewport, RSE::ViewportVRSMode p_mode); void viewport_set_vrs_update_mode(RID p_viewport, RSE::ViewportVRSUpdateMode p_mode); @@ -319,7 +319,7 @@ class RendererViewport { int get_num_viewports_with_motion_vectors() const; // Workaround for setting this on thread. - void call_set_vsync_mode(DisplayServer::VSyncMode p_mode, DisplayServer::WindowID p_window); + void call_set_vsync_mode(DisplayServerEnums::VSyncMode p_mode, DisplayServerEnums::WindowID p_window); RendererViewport(); virtual ~RendererViewport() {} diff --git a/servers/rendering/rendering_context_driver.cpp b/servers/rendering/rendering_context_driver.cpp index 16174bbc7acd..b88b9f5e67be 100644 --- a/servers/rendering/rendering_context_driver.cpp +++ b/servers/rendering/rendering_context_driver.cpp @@ -33,8 +33,8 @@ RenderingContextDriver::~RenderingContextDriver() { } -RenderingContextDriver::SurfaceID RenderingContextDriver::surface_get_from_window(DisplayServer::WindowID p_window) const { - HashMap::ConstIterator it = window_surface_map.find(p_window); +RenderingContextDriver::SurfaceID RenderingContextDriver::surface_get_from_window(DisplayServerEnums::WindowID p_window) const { + HashMap::ConstIterator it = window_surface_map.find(p_window); if (it != window_surface_map.end()) { return it->value; } else { @@ -42,7 +42,7 @@ RenderingContextDriver::SurfaceID RenderingContextDriver::surface_get_from_windo } } -Error RenderingContextDriver::window_create(DisplayServer::WindowID p_window, const void *p_platform_data) { +Error RenderingContextDriver::window_create(DisplayServerEnums::WindowID p_window, const void *p_platform_data) { SurfaceID surface = surface_create(p_platform_data); if (surface != 0) { window_surface_map[p_window] = surface; @@ -52,37 +52,37 @@ Error RenderingContextDriver::window_create(DisplayServer::WindowID p_window, co } } -void RenderingContextDriver::window_set_size(DisplayServer::WindowID p_window, uint32_t p_width, uint32_t p_height) { +void RenderingContextDriver::window_set_size(DisplayServerEnums::WindowID p_window, uint32_t p_width, uint32_t p_height) { SurfaceID surface = surface_get_from_window(p_window); if (surface) { surface_set_size(surface, p_width, p_height); } } -void RenderingContextDriver::window_set_vsync_mode(DisplayServer::WindowID p_window, DisplayServer::VSyncMode p_vsync_mode) { +void RenderingContextDriver::window_set_vsync_mode(DisplayServerEnums::WindowID p_window, DisplayServerEnums::VSyncMode p_vsync_mode) { SurfaceID surface = surface_get_from_window(p_window); if (surface) { surface_set_vsync_mode(surface, p_vsync_mode); } } -DisplayServer::VSyncMode RenderingContextDriver::window_get_vsync_mode(DisplayServer::WindowID p_window) const { +DisplayServerEnums::VSyncMode RenderingContextDriver::window_get_vsync_mode(DisplayServerEnums::WindowID p_window) const { SurfaceID surface = surface_get_from_window(p_window); if (surface) { return surface_get_vsync_mode(surface); } else { - return DisplayServer::VSYNC_DISABLED; + return DisplayServerEnums::VSYNC_DISABLED; } } -void RenderingContextDriver::window_set_hdr_output_enabled(DisplayServer::WindowID p_window, bool p_enabled) { +void RenderingContextDriver::window_set_hdr_output_enabled(DisplayServerEnums::WindowID p_window, bool p_enabled) { SurfaceID surface = surface_get_from_window(p_window); if (surface) { surface_set_hdr_output_enabled(surface, p_enabled); } } -bool RenderingContextDriver::window_get_hdr_output_enabled(DisplayServer::WindowID p_window) const { +bool RenderingContextDriver::window_get_hdr_output_enabled(DisplayServerEnums::WindowID p_window) const { SurfaceID surface = surface_get_from_window(p_window); if (surface) { return surface_get_hdr_output_enabled(surface); @@ -91,14 +91,14 @@ bool RenderingContextDriver::window_get_hdr_output_enabled(DisplayServer::Window } } -void RenderingContextDriver::window_set_hdr_output_reference_luminance(DisplayServer::WindowID p_window, float p_reference_luminance) { +void RenderingContextDriver::window_set_hdr_output_reference_luminance(DisplayServerEnums::WindowID p_window, float p_reference_luminance) { SurfaceID surface = surface_get_from_window(p_window); if (surface) { surface_set_hdr_output_reference_luminance(surface, p_reference_luminance); } } -float RenderingContextDriver::window_get_hdr_output_reference_luminance(DisplayServer::WindowID p_window) const { +float RenderingContextDriver::window_get_hdr_output_reference_luminance(DisplayServerEnums::WindowID p_window) const { SurfaceID surface = surface_get_from_window(p_window); if (surface) { return surface_get_hdr_output_reference_luminance(surface); @@ -107,14 +107,14 @@ float RenderingContextDriver::window_get_hdr_output_reference_luminance(DisplayS } } -void RenderingContextDriver::window_set_hdr_output_max_luminance(DisplayServer::WindowID p_window, float p_max_luminance) { +void RenderingContextDriver::window_set_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window, float p_max_luminance) { SurfaceID surface = surface_get_from_window(p_window); if (surface) { surface_set_hdr_output_max_luminance(surface, p_max_luminance); } } -float RenderingContextDriver::window_get_hdr_output_max_luminance(DisplayServer::WindowID p_window) const { +float RenderingContextDriver::window_get_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window) const { SurfaceID surface = surface_get_from_window(p_window); if (surface) { return surface_get_hdr_output_max_luminance(surface); @@ -123,14 +123,14 @@ float RenderingContextDriver::window_get_hdr_output_max_luminance(DisplayServer: } } -void RenderingContextDriver::window_set_hdr_output_linear_luminance_scale(DisplayServer::WindowID p_window, float p_linear_luminance_scale) { +void RenderingContextDriver::window_set_hdr_output_linear_luminance_scale(DisplayServerEnums::WindowID p_window, float p_linear_luminance_scale) { SurfaceID surface = surface_get_from_window(p_window); if (surface) { surface_set_hdr_output_linear_luminance_scale(surface, p_linear_luminance_scale); } } -float RenderingContextDriver::window_get_hdr_output_linear_luminance_scale(DisplayServer::WindowID p_window) const { +float RenderingContextDriver::window_get_hdr_output_linear_luminance_scale(DisplayServerEnums::WindowID p_window) const { SurfaceID surface = surface_get_from_window(p_window); if (surface) { return surface_get_hdr_output_linear_luminance_scale(surface); @@ -139,7 +139,7 @@ float RenderingContextDriver::window_get_hdr_output_linear_luminance_scale(Displ } } -float RenderingContextDriver::window_get_output_max_linear_value(DisplayServer::WindowID p_window) const { +float RenderingContextDriver::window_get_output_max_linear_value(DisplayServerEnums::WindowID p_window) const { SurfaceID surface = surface_get_from_window(p_window); if (surface) { if (surface_get_hdr_output_enabled(surface)) { @@ -149,7 +149,7 @@ float RenderingContextDriver::window_get_output_max_linear_value(DisplayServer:: return 1.0f; // SDR } -void RenderingContextDriver::window_destroy(DisplayServer::WindowID p_window) { +void RenderingContextDriver::window_destroy(DisplayServerEnums::WindowID p_window) { SurfaceID surface = surface_get_from_window(p_window); if (surface) { surface_destroy(surface); diff --git a/servers/rendering/rendering_context_driver.h b/servers/rendering/rendering_context_driver.h index f4e1708ac62f..dfe4bfbd756a 100644 --- a/servers/rendering/rendering_context_driver.h +++ b/servers/rendering/rendering_context_driver.h @@ -30,7 +30,11 @@ #pragma once -#include "servers/display/display_server.h" +#include "core/string/ustring.h" +#include "core/templates/hash_map.h" +#include "servers/display/display_server_enums.h" + +#include class RenderingDeviceDriver; @@ -39,24 +43,24 @@ class RenderingContextDriver { typedef uint64_t SurfaceID; private: - HashMap window_surface_map; + HashMap window_surface_map; public: - SurfaceID surface_get_from_window(DisplayServer::WindowID p_window) const; - Error window_create(DisplayServer::WindowID p_window, const void *p_platform_data); - void window_set_size(DisplayServer::WindowID p_window, uint32_t p_width, uint32_t p_height); - void window_set_vsync_mode(DisplayServer::WindowID p_window, DisplayServer::VSyncMode p_vsync_mode); - DisplayServer::VSyncMode window_get_vsync_mode(DisplayServer::WindowID p_window) const; - void window_set_hdr_output_enabled(DisplayServer::WindowID p_window, bool p_enabled); - bool window_get_hdr_output_enabled(DisplayServer::WindowID p_window) const; - void window_set_hdr_output_reference_luminance(DisplayServer::WindowID p_window, float p_reference_luminance); - float window_get_hdr_output_reference_luminance(DisplayServer::WindowID p_window) const; - void window_set_hdr_output_max_luminance(DisplayServer::WindowID p_window, float p_max_luminance); - float window_get_hdr_output_max_luminance(DisplayServer::WindowID p_window) const; - void window_set_hdr_output_linear_luminance_scale(DisplayServer::WindowID p_window, float p_linear_luminance_scale); - float window_get_hdr_output_linear_luminance_scale(DisplayServer::WindowID p_window) const; - float window_get_output_max_linear_value(DisplayServer::WindowID p_window) const; - void window_destroy(DisplayServer::WindowID p_window); + SurfaceID surface_get_from_window(DisplayServerEnums::WindowID p_window) const; + Error window_create(DisplayServerEnums::WindowID p_window, const void *p_platform_data); + void window_set_size(DisplayServerEnums::WindowID p_window, uint32_t p_width, uint32_t p_height); + void window_set_vsync_mode(DisplayServerEnums::WindowID p_window, DisplayServerEnums::VSyncMode p_vsync_mode); + DisplayServerEnums::VSyncMode window_get_vsync_mode(DisplayServerEnums::WindowID p_window) const; + void window_set_hdr_output_enabled(DisplayServerEnums::WindowID p_window, bool p_enabled); + bool window_get_hdr_output_enabled(DisplayServerEnums::WindowID p_window) const; + void window_set_hdr_output_reference_luminance(DisplayServerEnums::WindowID p_window, float p_reference_luminance); + float window_get_hdr_output_reference_luminance(DisplayServerEnums::WindowID p_window) const; + void window_set_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window, float p_max_luminance); + float window_get_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window) const; + void window_set_hdr_output_linear_luminance_scale(DisplayServerEnums::WindowID p_window, float p_linear_luminance_scale); + float window_get_hdr_output_linear_luminance_scale(DisplayServerEnums::WindowID p_window) const; + float window_get_output_max_linear_value(DisplayServerEnums::WindowID p_window) const; + void window_destroy(DisplayServerEnums::WindowID p_window); public: // Not an enum as these values are matched against values returned by @@ -104,8 +108,8 @@ class RenderingContextDriver { virtual void driver_free(RenderingDeviceDriver *p_driver) = 0; virtual SurfaceID surface_create(const void *p_platform_data) = 0; virtual void surface_set_size(SurfaceID p_surface, uint32_t p_width, uint32_t p_height) = 0; - virtual void surface_set_vsync_mode(SurfaceID p_surface, DisplayServer::VSyncMode p_vsync_mode) = 0; - virtual DisplayServer::VSyncMode surface_get_vsync_mode(SurfaceID p_surface) const = 0; + virtual void surface_set_vsync_mode(SurfaceID p_surface, DisplayServerEnums::VSyncMode p_vsync_mode) = 0; + virtual DisplayServerEnums::VSyncMode surface_get_vsync_mode(SurfaceID p_surface) const = 0; virtual void surface_set_hdr_output_enabled(SurfaceID p_surface, bool p_enabled) = 0; virtual bool surface_get_hdr_output_enabled(SurfaceID p_surface) const = 0; virtual void surface_set_hdr_output_reference_luminance(SurfaceID p_surface, float p_reference_luminance) = 0; diff --git a/servers/rendering/rendering_device.compat.inc b/servers/rendering/rendering_device.compat.inc index 6ac75cc5d4cd..e5bcf7ac1f2d 100644 --- a/servers/rendering/rendering_device.compat.inc +++ b/servers/rendering/rendering_device.compat.inc @@ -144,7 +144,7 @@ Error RenderingDevice::_texture_resolve_multisample_bind_compat_84976(RID p_from } RenderingDevice::FramebufferFormatID RenderingDevice::_screen_get_framebuffer_format_bind_compat_87340() const { - return screen_get_framebuffer_format(DisplayServer::MAIN_WINDOW_ID); + return screen_get_framebuffer_format(DisplayServerEnums::MAIN_WINDOW_ID); } RID RenderingDevice::_uniform_buffer_create_bind_compat_101561(uint32_t p_size_bytes, const Vector &p_data) { diff --git a/servers/rendering/rendering_device.cpp b/servers/rendering/rendering_device.cpp index ac624fc3fe11..e055a74b2f51 100644 --- a/servers/rendering/rendering_device.cpp +++ b/servers/rendering/rendering_device.cpp @@ -4732,13 +4732,13 @@ uint32_t RenderingDevice::_get_swap_chain_desired_count() const { return MAX(2U, uint32_t(GLOBAL_GET_CACHED(uint32_t, "rendering/rendering_device/vsync/swapchain_image_count"))); } -Error RenderingDevice::screen_create(DisplayServer::WindowID p_screen) { +Error RenderingDevice::screen_create(DisplayServerEnums::WindowID p_screen) { _THREAD_SAFE_METHOD_ RenderingContextDriver::SurfaceID surface = context->surface_get_from_window(p_screen); ERR_FAIL_COND_V_MSG(surface == 0, ERR_CANT_CREATE, "A surface was not created for the screen."); - HashMap::ConstIterator it = screen_swap_chains.find(p_screen); + HashMap::ConstIterator it = screen_swap_chains.find(p_screen); ERR_FAIL_COND_V_MSG(it != screen_swap_chains.end(), ERR_CANT_CREATE, "A swap chain was already created for the screen."); RDD::SwapChainID swap_chain = driver->swap_chain_create(surface); @@ -4749,11 +4749,11 @@ Error RenderingDevice::screen_create(DisplayServer::WindowID p_screen) { return OK; } -Error RenderingDevice::screen_prepare_for_drawing(DisplayServer::WindowID p_screen) { +Error RenderingDevice::screen_prepare_for_drawing(DisplayServerEnums::WindowID p_screen) { _THREAD_SAFE_METHOD_ // After submitting work, acquire the swapchain image(s). - HashMap::ConstIterator it = screen_swap_chains.find(p_screen); + HashMap::ConstIterator it = screen_swap_chains.find(p_screen); ERR_FAIL_COND_V_MSG(it == screen_swap_chains.end(), ERR_CANT_CREATE, "A swap chain was not created for the screen."); // Erase the framebuffer corresponding to this screen from the map in case any of the operations fail. @@ -4799,7 +4799,7 @@ Error RenderingDevice::screen_prepare_for_drawing(DisplayServer::WindowID p_scre return OK; } -int RenderingDevice::screen_get_width(DisplayServer::WindowID p_screen) const { +int RenderingDevice::screen_get_width(DisplayServerEnums::WindowID p_screen) const { _THREAD_SAFE_METHOD_ RenderingContextDriver::SurfaceID surface = context->surface_get_from_window(p_screen); @@ -4807,7 +4807,7 @@ int RenderingDevice::screen_get_width(DisplayServer::WindowID p_screen) const { return context->surface_get_width(surface); } -int RenderingDevice::screen_get_height(DisplayServer::WindowID p_screen) const { +int RenderingDevice::screen_get_height(DisplayServerEnums::WindowID p_screen) const { _THREAD_SAFE_METHOD_ RenderingContextDriver::SurfaceID surface = context->surface_get_from_window(p_screen); @@ -4815,19 +4815,19 @@ int RenderingDevice::screen_get_height(DisplayServer::WindowID p_screen) const { return context->surface_get_height(surface); } -int RenderingDevice::screen_get_pre_rotation_degrees(DisplayServer::WindowID p_screen) const { +int RenderingDevice::screen_get_pre_rotation_degrees(DisplayServerEnums::WindowID p_screen) const { _THREAD_SAFE_METHOD_ - HashMap::ConstIterator it = screen_swap_chains.find(p_screen); + HashMap::ConstIterator it = screen_swap_chains.find(p_screen); ERR_FAIL_COND_V_MSG(it == screen_swap_chains.end(), ERR_CANT_CREATE, "A swap chain was not created for the screen."); return driver->swap_chain_get_pre_rotation_degrees(it->value); } -RenderingDevice::FramebufferFormatID RenderingDevice::screen_get_framebuffer_format(DisplayServer::WindowID p_screen) const { +RenderingDevice::FramebufferFormatID RenderingDevice::screen_get_framebuffer_format(DisplayServerEnums::WindowID p_screen) const { _THREAD_SAFE_METHOD_ - HashMap::ConstIterator it = screen_swap_chains.find(p_screen); + HashMap::ConstIterator it = screen_swap_chains.find(p_screen); ERR_FAIL_COND_V_MSG(it == screen_swap_chains.end(), INVALID_ID, "Screen was never prepared."); DataFormat format = driver->swap_chain_get_format(it->value); @@ -4842,10 +4842,10 @@ RenderingDevice::FramebufferFormatID RenderingDevice::screen_get_framebuffer_for return const_cast(this)->framebuffer_format_create(screen_attachment); } -RenderingDevice::ColorSpace RenderingDevice::screen_get_color_space(DisplayServer::WindowID p_screen) const { +RenderingDevice::ColorSpace RenderingDevice::screen_get_color_space(DisplayServerEnums::WindowID p_screen) const { _THREAD_SAFE_METHOD_ - HashMap::ConstIterator it = screen_swap_chains.find(p_screen); + HashMap::ConstIterator it = screen_swap_chains.find(p_screen); ERR_FAIL_COND_V_MSG(it == screen_swap_chains.end(), COLOR_SPACE_MAX, "Screen was never prepared."); ColorSpace color_space = driver->swap_chain_get_color_space(it->value); @@ -4853,16 +4853,16 @@ RenderingDevice::ColorSpace RenderingDevice::screen_get_color_space(DisplayServe return color_space; } -Error RenderingDevice::screen_free(DisplayServer::WindowID p_screen) { +Error RenderingDevice::screen_free(DisplayServerEnums::WindowID p_screen) { _THREAD_SAFE_METHOD_ - HashMap::ConstIterator it = screen_swap_chains.find(p_screen); + HashMap::ConstIterator it = screen_swap_chains.find(p_screen); ERR_FAIL_COND_V_MSG(it == screen_swap_chains.end(), FAILED, "Screen was never created."); // Flush everything so nothing can be using the swap chain before erasing it. _flush_and_stall_for_all_frames(); - const DisplayServer::WindowID screen = it->key; + const DisplayServerEnums::WindowID screen = it->key; const RDD::SwapChainID swap_chain = it->value; driver->swap_chain_free(swap_chain); screen_framebuffers.erase(screen); @@ -4875,7 +4875,7 @@ Error RenderingDevice::screen_free(DisplayServer::WindowID p_screen) { /**** DRAW LIST ****/ /*******************/ -RenderingDevice::DrawListID RenderingDevice::draw_list_begin_for_screen(DisplayServer::WindowID p_screen, const Color &p_clear_color) { +RenderingDevice::DrawListID RenderingDevice::draw_list_begin_for_screen(DisplayServerEnums::WindowID p_screen, const Color &p_clear_color) { ERR_RENDER_THREAD_GUARD_V(INVALID_ID); ERR_FAIL_COND_V_MSG(draw_list.active, INVALID_ID, "Only one draw list can be active at the same time."); @@ -4883,8 +4883,8 @@ RenderingDevice::DrawListID RenderingDevice::draw_list_begin_for_screen(DisplayS ERR_FAIL_COND_V_MSG(raytracing_list.active, INVALID_ID, "Only one draw/raytracing list can be active at the same time."); RenderingContextDriver::SurfaceID surface = context->surface_get_from_window(p_screen); - HashMap::ConstIterator sc_it = screen_swap_chains.find(p_screen); - HashMap::ConstIterator fb_it = screen_framebuffers.find(p_screen); + HashMap::ConstIterator sc_it = screen_swap_chains.find(p_screen); + HashMap::ConstIterator fb_it = screen_framebuffers.find(p_screen); ERR_FAIL_COND_V_MSG(surface == 0, 0, "A surface was not created for the screen."); ERR_FAIL_COND_V_MSG(sc_it == screen_swap_chains.end(), INVALID_ID, "Screen was never prepared."); ERR_FAIL_COND_V_MSG(fb_it == screen_framebuffers.end(), INVALID_ID, "Framebuffer was never prepared."); @@ -7589,13 +7589,13 @@ void RenderingDevice::_flush_and_stall_for_all_frames(bool p_begin_frame) { } } -Error RenderingDevice::initialize(RenderingContextDriver *p_context, DisplayServer::WindowID p_main_window) { +Error RenderingDevice::initialize(RenderingContextDriver *p_context, DisplayServerEnums::WindowID p_main_window) { ERR_RENDER_THREAD_GUARD_V(ERR_UNAVAILABLE); Error err; RenderingContextDriver::SurfaceID main_surface = 0; - is_main_instance = (singleton == this) && (p_main_window != DisplayServer::INVALID_WINDOW_ID); - if (p_main_window != DisplayServer::INVALID_WINDOW_ID) { + is_main_instance = (singleton == this) && (p_main_window != DisplayServerEnums::INVALID_WINDOW_ID); + if (p_main_window != DisplayServerEnums::INVALID_WINDOW_ID) { // Retrieve the surface from the main window if it was specified. main_surface = p_context->surface_get_from_window(p_main_window); ERR_FAIL_COND_V(main_surface == 0, FAILED); @@ -8242,7 +8242,7 @@ void RenderingDevice::finalize() { framebuffer_formats.clear(); // Delete the swap chains created for the screens. - for (const KeyValue &it : screen_swap_chains) { + for (const KeyValue &it : screen_swap_chains) { driver->swap_chain_free(it.value); } @@ -8284,7 +8284,7 @@ void RenderingDevice::finalize() { } void RenderingDevice::_set_max_fps(int p_max_fps) { - for (const KeyValue &it : screen_swap_chains) { + for (const KeyValue &it : screen_swap_chains) { driver->swap_chain_set_max_fps(it.value, p_max_fps); } } @@ -8399,11 +8399,11 @@ void RenderingDevice::_bind_methods() { ClassDB::bind_method(D_METHOD("tlas_create", "instances_buffer"), &RenderingDevice::tlas_create); ClassDB::bind_method(D_METHOD("acceleration_structure_build", "acceleration_structure"), &RenderingDevice::acceleration_structure_build); - ClassDB::bind_method(D_METHOD("screen_get_width", "screen"), &RenderingDevice::screen_get_width, DEFVAL(DisplayServer::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("screen_get_height", "screen"), &RenderingDevice::screen_get_height, DEFVAL(DisplayServer::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("screen_get_framebuffer_format", "screen"), &RenderingDevice::screen_get_framebuffer_format, DEFVAL(DisplayServer::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("screen_get_width", "screen"), &RenderingDevice::screen_get_width, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("screen_get_height", "screen"), &RenderingDevice::screen_get_height, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("screen_get_framebuffer_format", "screen"), &RenderingDevice::screen_get_framebuffer_format, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); - ClassDB::bind_method(D_METHOD("draw_list_begin_for_screen", "screen", "clear_color"), &RenderingDevice::draw_list_begin_for_screen, DEFVAL(DisplayServer::MAIN_WINDOW_ID), DEFVAL(Color())); + ClassDB::bind_method(D_METHOD("draw_list_begin_for_screen", "screen", "clear_color"), &RenderingDevice::draw_list_begin_for_screen, DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID), DEFVAL(Color())); ClassDB::bind_method(D_METHOD("draw_list_begin", "framebuffer", "draw_flags", "clear_color_values", "clear_depth_value", "clear_stencil_value", "region", "breadcrumb"), &RenderingDevice::_draw_list_begin_bind, DEFVAL(DRAW_DEFAULT_ALL), DEFVAL(Vector()), DEFVAL(1.0), DEFVAL(0), DEFVAL(Rect2()), DEFVAL(0)); #ifndef DISABLE_DEPRECATED diff --git a/servers/rendering/rendering_device.h b/servers/rendering/rendering_device.h index 9ec9803cb779..d5fb3d43fcf3 100644 --- a/servers/rendering/rendering_device.h +++ b/servers/rendering/rendering_device.h @@ -36,8 +36,9 @@ #include "core/templates/local_vector.h" #include "core/templates/rb_map.h" #include "core/templates/rid_owner.h" +#include "core/variant/binder_common.h" #include "core/variant/typed_array.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #include "servers/rendering/rendering_device_commons.h" #include "servers/rendering/rendering_device_driver.h" #include "servers/rendering/rendering_device_enums.h" @@ -1268,20 +1269,20 @@ class RenderingDevice : public RenderingDeviceCommons { /****************/ /**** SCREEN ****/ /****************/ - HashMap screen_swap_chains; - HashMap screen_framebuffers; + HashMap screen_swap_chains; + HashMap screen_framebuffers; uint32_t _get_swap_chain_desired_count() const; public: - Error screen_create(DisplayServer::WindowID p_screen = DisplayServer::MAIN_WINDOW_ID); - Error screen_prepare_for_drawing(DisplayServer::WindowID p_screen = DisplayServer::MAIN_WINDOW_ID); - int screen_get_width(DisplayServer::WindowID p_screen = DisplayServer::MAIN_WINDOW_ID) const; - int screen_get_height(DisplayServer::WindowID p_screen = DisplayServer::MAIN_WINDOW_ID) const; - int screen_get_pre_rotation_degrees(DisplayServer::WindowID p_screen = DisplayServer::MAIN_WINDOW_ID) const; - FramebufferFormatID screen_get_framebuffer_format(DisplayServer::WindowID p_screen = DisplayServer::MAIN_WINDOW_ID) const; - ColorSpace screen_get_color_space(DisplayServer::WindowID p_screen = DisplayServer::MAIN_WINDOW_ID) const; - Error screen_free(DisplayServer::WindowID p_screen = DisplayServer::MAIN_WINDOW_ID); + Error screen_create(DisplayServerEnums::WindowID p_screen = DisplayServerEnums::MAIN_WINDOW_ID); + Error screen_prepare_for_drawing(DisplayServerEnums::WindowID p_screen = DisplayServerEnums::MAIN_WINDOW_ID); + int screen_get_width(DisplayServerEnums::WindowID p_screen = DisplayServerEnums::MAIN_WINDOW_ID) const; + int screen_get_height(DisplayServerEnums::WindowID p_screen = DisplayServerEnums::MAIN_WINDOW_ID) const; + int screen_get_pre_rotation_degrees(DisplayServerEnums::WindowID p_screen = DisplayServerEnums::MAIN_WINDOW_ID) const; + FramebufferFormatID screen_get_framebuffer_format(DisplayServerEnums::WindowID p_screen = DisplayServerEnums::MAIN_WINDOW_ID) const; + ColorSpace screen_get_color_space(DisplayServerEnums::WindowID p_screen = DisplayServerEnums::MAIN_WINDOW_ID) const; + Error screen_free(DisplayServerEnums::WindowID p_screen = DisplayServerEnums::MAIN_WINDOW_ID); private: /********************************/ @@ -1437,7 +1438,7 @@ class RenderingDevice : public RenderingDeviceCommons { /** * @param p_clear_color Must use linear encoding when HDR 2D is active. */ - DrawListID draw_list_begin_for_screen(DisplayServer::WindowID p_screen = 0, const Color &p_clear_color = Color()); + DrawListID draw_list_begin_for_screen(DisplayServerEnums::WindowID p_screen = 0, const Color &p_clear_color = Color()); /** * @param p_clear_color_values Color values must use linear encoding when HDR 2D is active. */ @@ -1784,7 +1785,7 @@ class RenderingDevice : public RenderingDeviceCommons { #endif public: - Error initialize(RenderingContextDriver *p_context, DisplayServer::WindowID p_main_window = DisplayServer::INVALID_WINDOW_ID); + Error initialize(RenderingContextDriver *p_context, DisplayServerEnums::WindowID p_main_window = DisplayServerEnums::INVALID_WINDOW_ID); void finalize(); void _set_max_fps(int p_max_fps); diff --git a/servers/rendering/rendering_device_binds.h b/servers/rendering/rendering_device_binds.h index 86654df99f65..58df2f88ae58 100644 --- a/servers/rendering/rendering_device_binds.h +++ b/servers/rendering/rendering_device_binds.h @@ -30,6 +30,7 @@ #pragma once +#include "core/io/resource.h" #include "core/object/class_db.h" #include "servers/rendering/rendering_device.h" diff --git a/servers/rendering/rendering_server.cpp b/servers/rendering/rendering_server.cpp index 450e8ea11967..f326dd77b8bf 100644 --- a/servers/rendering/rendering_server.cpp +++ b/servers/rendering/rendering_server.cpp @@ -2837,7 +2837,7 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("viewport_set_size", "viewport", "width", "height", "view_count"), &RenderingServer::viewport_set_size, DEFVAL(1)); ClassDB::bind_method(D_METHOD("viewport_set_active", "viewport", "active"), &RenderingServer::viewport_set_active); ClassDB::bind_method(D_METHOD("viewport_set_parent_viewport", "viewport", "parent_viewport"), &RenderingServer::viewport_set_parent_viewport); - ClassDB::bind_method(D_METHOD("viewport_attach_to_screen", "viewport", "rect", "screen"), &RenderingServer::viewport_attach_to_screen, DEFVAL(Rect2()), DEFVAL(DisplayServer::MAIN_WINDOW_ID)); + ClassDB::bind_method(D_METHOD("viewport_attach_to_screen", "viewport", "rect", "screen"), &RenderingServer::viewport_attach_to_screen, DEFVAL(Rect2()), DEFVAL(DisplayServerEnums::MAIN_WINDOW_ID)); ClassDB::bind_method(D_METHOD("viewport_set_render_direct_to_screen", "viewport", "enabled"), &RenderingServer::viewport_set_render_direct_to_screen); ClassDB::bind_method(D_METHOD("viewport_set_canvas_cull_mask", "viewport", "canvas_cull_mask"), &RenderingServer::viewport_set_canvas_cull_mask); diff --git a/servers/rendering/rendering_server.h b/servers/rendering/rendering_server.h index 4c1f514cb8ca..5efdbd3be126 100644 --- a/servers/rendering/rendering_server.h +++ b/servers/rendering/rendering_server.h @@ -34,7 +34,7 @@ #include "core/templates/rid.h" #include "core/variant/typed_array.h" #include "core/variant/variant.h" -#include "servers/display/display_server.h" +#include "servers/display/display_server_enums.h" #include "servers/rendering/rendering_device_enums.h" #include "servers/rendering/rendering_server_enums.h" #include "servers/rendering/rendering_server_types.h" @@ -536,7 +536,7 @@ class RenderingServer : public Object { virtual void viewport_set_parent_viewport(RID p_viewport, RID p_parent_viewport) = 0; virtual void viewport_set_canvas_cull_mask(RID p_viewport, uint32_t p_canvas_cull_mask) = 0; - virtual void viewport_attach_to_screen(RID p_viewport, const Rect2 &p_rect = Rect2(), DisplayServer::WindowID p_screen = DisplayServer::MAIN_WINDOW_ID) = 0; + virtual void viewport_attach_to_screen(RID p_viewport, const Rect2 &p_rect = Rect2(), DisplayServerEnums::WindowID p_screen = DisplayServerEnums::MAIN_WINDOW_ID) = 0; virtual void viewport_set_render_direct_to_screen(RID p_viewport, bool p_enable) = 0; virtual void viewport_set_scaling_3d_mode(RID p_viewport, RSE::ViewportScaling3DMode p_scaling_3d_mode) = 0; @@ -605,7 +605,7 @@ class RenderingServer : public Object { virtual double viewport_get_measured_render_time_cpu(RID p_viewport) const = 0; virtual double viewport_get_measured_render_time_gpu(RID p_viewport) const = 0; - virtual RID viewport_find_from_screen_attachment(DisplayServer::WindowID p_id = DisplayServer::MAIN_WINDOW_ID) const = 0; + virtual RID viewport_find_from_screen_attachment(DisplayServerEnums::WindowID p_id = DisplayServerEnums::MAIN_WINDOW_ID) const = 0; virtual void viewport_set_vrs_mode(RID p_viewport, RSE::ViewportVRSMode p_mode) = 0; virtual void viewport_set_vrs_update_mode(RID p_viewport, RSE::ViewportVRSUpdateMode p_mode) = 0; @@ -1012,7 +1012,7 @@ class RenderingServer : public Object { virtual void set_debug_generate_wireframes(bool p_generate) = 0; - virtual void call_set_vsync_mode(DisplayServer::VSyncMode p_mode, DisplayServer::WindowID p_window) = 0; + virtual void call_set_vsync_mode(DisplayServerEnums::VSyncMode p_mode, DisplayServerEnums::WindowID p_window) = 0; virtual bool is_low_end() const = 0; diff --git a/servers/rendering/rendering_server_default.cpp b/servers/rendering/rendering_server_default.cpp index 44562643ae03..3efa103a887e 100644 --- a/servers/rendering/rendering_server_default.cpp +++ b/servers/rendering/rendering_server_default.cpp @@ -33,10 +33,11 @@ #include "core/object/callable_method_pointer.h" #include "core/os/os.h" #include "core/profiling/profiling.h" -#include "renderer_canvas_cull.h" -#include "renderer_scene_cull.h" -#include "rendering_device.h" -#include "rendering_server_globals.h" +#include "servers/display/display_server.h" +#include "servers/rendering/renderer_canvas_cull.h" +#include "servers/rendering/renderer_scene_cull.h" +#include "servers/rendering/rendering_device.h" +#include "servers/rendering/rendering_server_globals.h" #ifndef XR_DISABLED #include "servers/xr/xr_server.h" @@ -412,7 +413,7 @@ void RenderingServerDefault::_thread_exit() { } void RenderingServerDefault::_thread_loop() { - DisplayServer::get_singleton()->gl_window_make_current(DisplayServer::MAIN_WINDOW_ID); // Move GL to this thread. + DisplayServer::get_singleton()->gl_window_make_current(DisplayServerEnums::MAIN_WINDOW_ID); // Move GL to this thread. while (!exit) { WorkerThreadPool::get_singleton()->yield(); diff --git a/servers/rendering/rendering_server_default.h b/servers/rendering/rendering_server_default.h index 99b8f5c506d9..158d54b47cad 100644 --- a/servers/rendering/rendering_server_default.h +++ b/servers/rendering/rendering_server_default.h @@ -794,9 +794,9 @@ class RenderingServerDefault : public RenderingServer { FUNC2(viewport_set_measure_render_time, RID, bool) FUNC1RC(double, viewport_get_measured_render_time_cpu, RID) FUNC1RC(double, viewport_get_measured_render_time_gpu, RID) - FUNC1RC(RID, viewport_find_from_screen_attachment, DisplayServer::WindowID) + FUNC1RC(RID, viewport_find_from_screen_attachment, DisplayServerEnums::WindowID) - FUNC2(call_set_vsync_mode, DisplayServer::VSyncMode, DisplayServer::WindowID) + FUNC2(call_set_vsync_mode, DisplayServerEnums::VSyncMode, DisplayServerEnums::WindowID) FUNC2(viewport_set_vrs_mode, RID, RSE::ViewportVRSMode) FUNC2(viewport_set_vrs_update_mode, RID, RSE::ViewportVRSUpdateMode) diff --git a/servers/rendering/storage/render_data_extension.cpp b/servers/rendering/storage/render_data_extension.cpp index cc798e6c0628..faa61f31a57d 100644 --- a/servers/rendering/storage/render_data_extension.cpp +++ b/servers/rendering/storage/render_data_extension.cpp @@ -30,7 +30,7 @@ #include "render_data_extension.h" -#include "servers/rendering/rendering_server.h" // IWYU pragma: Needed to bind RSE enums. +#include "servers/rendering/rendering_server.h" // IWYU pragma: keep // Needed to bind RSE enums. #include "core/object/class_db.h" diff --git a/servers/text/text_server.cpp b/servers/text/text_server.cpp index a81f6fc37464..3b502a287885 100644 --- a/servers/text/text_server.cpp +++ b/servers/text/text_server.cpp @@ -34,6 +34,7 @@ #include "core/config/project_settings.h" #include "core/object/class_db.h" #include "core/os/main_loop.h" +#include "core/os/os.h" #include "core/variant/typed_array.h" #include "servers/rendering/rendering_server.h" diff --git a/tests/display_server_mock.cpp b/tests/display_server_mock.cpp index 904cd09d4dc5..97d8fe7eee7c 100644 --- a/tests/display_server_mock.cpp +++ b/tests/display_server_mock.cpp @@ -52,21 +52,21 @@ void DisplayServerMock::_set_window_over(bool p_over) { return; } window_over = p_over; - _send_window_event(p_over ? WINDOW_EVENT_MOUSE_ENTER : WINDOW_EVENT_MOUSE_EXIT); + _send_window_event(p_over ? DisplayServerEnums::WINDOW_EVENT_MOUSE_ENTER : DisplayServerEnums::WINDOW_EVENT_MOUSE_EXIT); } -void DisplayServerMock::_send_window_event(WindowEvent p_event) { +void DisplayServerMock::_send_window_event(DisplayServerEnums::WindowEvent p_event) { if (event_callback.is_valid()) { Variant event = int(p_event); event_callback.call(event); } } -bool DisplayServerMock::has_feature(Feature p_feature) const { +bool DisplayServerMock::has_feature(DisplayServerEnums::Feature p_feature) const { switch (p_feature) { - case FEATURE_MOUSE: - case FEATURE_CURSOR_SHAPE: - case FEATURE_CLIPBOARD: - case FEATURE_CLIPBOARD_PRIMARY: + case DisplayServerEnums::FEATURE_MOUSE: + case DisplayServerEnums::FEATURE_CURSOR_SHAPE: + case DisplayServerEnums::FEATURE_CLIPBOARD: + case DisplayServerEnums::FEATURE_CLIPBOARD_PRIMARY: return true; default: { } @@ -74,7 +74,7 @@ bool DisplayServerMock::has_feature(Feature p_feature) const { return false; } -DisplayServer *DisplayServerMock::create_func(const String &p_rendering_driver, DisplayServer::WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error) { +DisplayServer *DisplayServerMock::create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error) { r_error = OK; RasterizerDummy::make_current(); return memnew(DisplayServerMock()); diff --git a/tests/display_server_mock.h b/tests/display_server_mock.h index 3c7946ce7c7f..1026ce39288a 100644 --- a/tests/display_server_mock.h +++ b/tests/display_server_mock.h @@ -41,7 +41,7 @@ class DisplayServerMock : public DisplayServerHeadless { friend class DisplayServer; Point2i mouse_position = Point2i(-1, -1); // Outside of Window. - CursorShape cursor_shape = CursorShape::CURSOR_ARROW; + DisplayServerEnums::CursorShape cursor_shape = DisplayServerEnums::CursorShape::CURSOR_ARROW; bool window_over = false; Callable event_callback; @@ -49,14 +49,14 @@ class DisplayServerMock : public DisplayServerHeadless { String primary_clipboard_text; static Vector get_rendering_drivers_func(); - static DisplayServer *create_func(const String &p_rendering_driver, DisplayServer::WindowMode p_mode, DisplayServer::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, Context p_context, int64_t p_parent_window, Error &r_error); + static DisplayServer *create_func(const String &p_rendering_driver, DisplayServerEnums::WindowMode p_mode, DisplayServerEnums::VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i *p_position, const Vector2i &p_resolution, int p_screen, DisplayServerEnums::Context p_context, int64_t p_parent_window, Error &r_error); void _set_mouse_position(const Point2i &p_position); void _set_window_over(bool p_over); - void _send_window_event(WindowEvent p_event); + void _send_window_event(DisplayServerEnums::WindowEvent p_event); public: - bool has_feature(Feature p_feature) const override; + bool has_feature(DisplayServerEnums::Feature p_feature) const override; String get_name() const override { return "mock"; } @@ -67,7 +67,7 @@ class DisplayServerMock : public DisplayServerHeadless { void simulate_event(Ref p_event); // Returns the current cursor shape. - CursorShape get_cursor_shape() { + DisplayServerEnums::CursorShape get_cursor_shape() { return cursor_shape; } @@ -78,15 +78,15 @@ class DisplayServerMock : public DisplayServerHeadless { virtual void clipboard_set_primary(const String &p_text) override { primary_clipboard_text = p_text; } virtual String clipboard_get_primary() const override { return primary_clipboard_text; } - virtual Size2i window_get_size(WindowID p_window = MAIN_WINDOW_ID) const override { + virtual Size2i window_get_size(DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) const override { return Size2i(1920, 1080); } - virtual void cursor_set_shape(CursorShape p_shape) override { + virtual void cursor_set_shape(DisplayServerEnums::CursorShape p_shape) override { cursor_shape = p_shape; } - virtual void window_set_window_event_callback(const Callable &p_callable, WindowID p_window = MAIN_WINDOW_ID) override { + virtual void window_set_window_event_callback(const Callable &p_callable, DisplayServerEnums::WindowID p_window = DisplayServerEnums::MAIN_WINDOW_ID) override { event_callback = p_callable; } diff --git a/tests/scene/test_split_container.cpp b/tests/scene/test_split_container.cpp index fcc6da17a381..081782bb137e 100644 --- a/tests/scene/test_split_container.cpp +++ b/tests/scene/test_split_container.cpp @@ -278,7 +278,7 @@ TEST_CASE("[SceneTree][SplitContainer] Collapsed") { // Cursor is default. SEND_GUI_MOUSE_MOTION_EVENT(Point2(1, 1), MouseButtonMask::NONE, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_ARROW); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_ARROW); // Dragger is disabled, cannot drag. SEND_GUI_MOUSE_BUTTON_EVENT(Point2(1, 1), MouseButton::LEFT, MouseButtonMask::LEFT, Key::NONE); @@ -377,20 +377,20 @@ TEST_CASE("[SceneTree][SplitContainer] Cursor shape") { // Default cursor shape. SEND_GUI_MOUSE_MOTION_EVENT(not_on_dragger, MouseButtonMask::NONE, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_ARROW); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_ARROW); // Horizontal cursor shape. SEND_GUI_MOUSE_MOTION_EVENT(on_dragger, MouseButtonMask::NONE, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_HSPLIT); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_HSPLIT); // Vertical cursor shape. split_container->set_vertical(true); SEND_GUI_MOUSE_MOTION_EVENT(on_dragger, MouseButtonMask::NONE, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_VSPLIT); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_VSPLIT); // Move off, default cursor shape. SEND_GUI_MOUSE_MOTION_EVENT(not_on_dragger, MouseButtonMask::NONE, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_ARROW); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_ARROW); memdelete(child_a); memdelete(child_b); diff --git a/tests/scene/test_text_edit.cpp b/tests/scene/test_text_edit.cpp index be4c98bc913e..bfeeed022c6c 100644 --- a/tests/scene/test_text_edit.cpp +++ b/tests/scene/test_text_edit.cpp @@ -8303,13 +8303,13 @@ TEST_CASE("[SceneTree][TextEdit] gutters") { // Defaults to none. CHECK(text_edit->get_hovered_gutter() == Vector2i(-1, -1)); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_ARROW); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_ARROW); // Hover over gutter. SEND_GUI_MOUSE_MOTION_EVENT(Point2(5, line_height + line_height / 2), MouseButtonMask::NONE, Key::NONE); CHECK(text_edit->get_hovered_gutter() == Vector2i(0, 1)); SIGNAL_CHECK_FALSE("gutter_clicked"); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_POINTING_HAND); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_POINTING_HAND); // Click on gutter. SEND_GUI_MOUSE_BUTTON_EVENT(Point2(5, line_height / 2), MouseButton::LEFT, MouseButtonMask::LEFT, Key::NONE); @@ -8325,19 +8325,19 @@ TEST_CASE("[SceneTree][TextEdit] gutters") { SEND_GUI_MOUSE_MOTION_EVENT(Point2(15, line_height + line_height / 2), MouseButtonMask::NONE, Key::NONE); CHECK(text_edit->get_hovered_gutter() == Vector2i(1, 1)); SIGNAL_CHECK_FALSE("gutter_clicked"); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_ARROW); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_ARROW); // Unclickable gutter can be clicked. SEND_GUI_MOUSE_BUTTON_EVENT(Point2(15, line_height * 2 + line_height / 2), MouseButton::LEFT, MouseButtonMask::LEFT, Key::NONE); CHECK(text_edit->get_hovered_gutter() == Vector2i(1, 2)); SIGNAL_CHECK("gutter_clicked", Array({ { 2, 1 } })); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_ARROW); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_ARROW); // Hover past last line. SEND_GUI_MOUSE_MOTION_EVENT(Point2(5, line_height * 5), MouseButtonMask::NONE, Key::NONE); CHECK(text_edit->get_hovered_gutter() == Vector2i(-1, -1)); SIGNAL_CHECK_FALSE("gutter_clicked"); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_ARROW); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_ARROW); // Click on gutter past last line. SEND_GUI_MOUSE_BUTTON_EVENT(Point2(5, line_height * 5), MouseButton::LEFT, MouseButtonMask::LEFT, Key::NONE); diff --git a/tests/scene/test_viewport.cpp b/tests/scene/test_viewport.cpp index 8c0b8998d390..8bc674180808 100644 --- a/tests/scene/test_viewport.cpp +++ b/tests/scene/test_viewport.cpp @@ -1170,7 +1170,7 @@ TEST_CASE("[SceneTree][Viewport] Controls and InputEvent handling") { // Move above a Control, that is a Drop target and allows dropping at this point. SEND_GUI_MOUSE_MOTION_EVENT(on_d, MouseButtonMask::LEFT, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_CAN_DROP); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_CAN_DROP); CHECK(root->gui_is_dragging()); CHECK_FALSE(root->gui_is_drag_successful()); @@ -1194,11 +1194,11 @@ TEST_CASE("[SceneTree][Viewport] Controls and InputEvent handling") { // Move above a Control, that is not a Drop target. SEND_GUI_MOUSE_MOTION_EVENT(on_a, MouseButtonMask::LEFT, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_FORBIDDEN); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_FORBIDDEN); // Move above a Control, that is a Drop target, but has disallowed this point. SEND_GUI_MOUSE_MOTION_EVENT(on_d + Point2i(20, 0), MouseButtonMask::LEFT, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_FORBIDDEN); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_FORBIDDEN); CHECK(root->gui_is_dragging()); SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT(on_d + Point2i(20, 0), MouseButton::LEFT, MouseButtonMask::NONE, Key::NONE); @@ -1220,7 +1220,7 @@ TEST_CASE("[SceneTree][Viewport] Controls and InputEvent handling") { // Move away from Controls. SEND_GUI_MOUSE_MOTION_EVENT(on_background, MouseButtonMask::LEFT, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_ARROW); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_ARROW); CHECK(root->gui_is_dragging()); SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT(on_background, MouseButton::LEFT, MouseButtonMask::NONE, Key::NONE); @@ -1237,7 +1237,7 @@ TEST_CASE("[SceneTree][Viewport] Controls and InputEvent handling") { CHECK(root->gui_is_dragging()); SEND_GUI_MOUSE_MOTION_EVENT(on_d, MouseButtonMask::LEFT, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_CAN_DROP); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_CAN_DROP); // Move outside of window. SEND_GUI_MOUSE_MOTION_EVENT(on_outside, MouseButtonMask::LEFT, Key::NONE); @@ -1444,7 +1444,7 @@ TEST_CASE("[SceneTree][Viewport] Controls and InputEvent handling") { CHECK(root->gui_is_dragging()); CHECK(sv_b->during_drag); SEND_GUI_MOUSE_MOTION_EVENT(on_svb, MouseButtonMask::LEFT, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_CAN_DROP); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_CAN_DROP); SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT(on_svb, MouseButton::LEFT, MouseButtonMask::NONE, Key::NONE); CHECK(sv_b->valid_drop); @@ -1458,7 +1458,7 @@ TEST_CASE("[SceneTree][Viewport] Controls and InputEvent handling") { CHECK(sv->gui_is_dragging()); CHECK(node_d->during_drag); SEND_GUI_MOUSE_MOTION_EVENT(on_d, MouseButtonMask::LEFT, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_CAN_DROP); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_CAN_DROP); SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT(on_d, MouseButton::LEFT, MouseButtonMask::NONE, Key::NONE); CHECK(node_d->valid_drop); @@ -1472,7 +1472,7 @@ TEST_CASE("[SceneTree][Viewport] Controls and InputEvent handling") { CHECK(root->gui_is_dragging()); CHECK(ew_b->during_drag); SEND_GUI_MOUSE_MOTION_EVENT(on_ewb, MouseButtonMask::LEFT, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_CAN_DROP); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_CAN_DROP); SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT(on_ewb, MouseButton::LEFT, MouseButtonMask::NONE, Key::NONE); CHECK(ew_b->valid_drop); @@ -1486,7 +1486,7 @@ TEST_CASE("[SceneTree][Viewport] Controls and InputEvent handling") { CHECK(ew->gui_is_dragging()); CHECK(node_d->during_drag); SEND_GUI_MOUSE_MOTION_EVENT(on_d, MouseButtonMask::LEFT, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_CAN_DROP); + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_CAN_DROP); SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT(on_d, MouseButton::LEFT, MouseButtonMask::NONE, Key::NONE); CHECK(node_d->valid_drop); @@ -1547,7 +1547,7 @@ TEST_CASE("[SceneTree][Viewport] Control mouse cursor shape") { Point2i on_c = Point2i(5, 5); SEND_GUI_MOUSE_MOTION_EVENT(on_c, MouseButtonMask::NONE, Key::NONE); - CHECK(DS->get_cursor_shape() == DisplayServer::CURSOR_FORBIDDEN); // GH-74805 + CHECK(DS->get_cursor_shape() == DisplayServerEnums::CURSOR_FORBIDDEN); // GH-74805 memdelete(node_c); memdelete(node_b); diff --git a/tests/test_main.cpp b/tests/test_main.cpp index 0ed9c8c4efbc..53ef2c2322d6 100644 --- a/tests/test_main.cpp +++ b/tests/test_main.cpp @@ -188,7 +188,7 @@ struct GodotTestCaseListener : public doctest::IReporter { for (int i = 0; i < DisplayServer::get_create_function_count(); i++) { if (String("mock") == DisplayServer::get_create_function_name(i)) { - DisplayServer::create(i, "", DisplayServer::WindowMode::WINDOW_MODE_MINIMIZED, DisplayServer::VSyncMode::VSYNC_ENABLED, 0, nullptr, Vector2i(0, 0), DisplayServer::SCREEN_PRIMARY, DisplayServer::CONTEXT_EDITOR, 0, err); + DisplayServer::create(i, "", DisplayServerEnums::WindowMode::WINDOW_MODE_MINIMIZED, DisplayServerEnums::VSyncMode::VSYNC_ENABLED, 0, nullptr, Vector2i(0, 0), DisplayServerEnums::SCREEN_PRIMARY, DisplayServerEnums::CONTEXT_EDITOR, 0, err); break; } } @@ -232,7 +232,7 @@ struct GodotTestCaseListener : public doctest::IReporter { memnew(SceneTree); SceneTree::get_singleton()->initialize(); - if (!DisplayServer::get_singleton()->has_feature(DisplayServer::Feature::FEATURE_SUBWINDOWS)) { + if (!DisplayServer::get_singleton()->has_feature(DisplayServerEnums::FEATURE_SUBWINDOWS)) { SceneTree::get_singleton()->get_root()->set_embedding_subwindows(true); }