diff --git a/core/crypto/aes_context.h b/core/crypto/aes_context.h index 60ae26fe5e..51d5d4cd6f 100644 --- a/core/crypto/aes_context.h +++ b/core/crypto/aes_context.h @@ -32,7 +32,7 @@ #include "core/crypto/crypto_core.h" #include "core/object/ref_counted.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" class AESContext : public RefCounted { GDCLASS(AESContext, RefCounted); diff --git a/core/crypto/hashing_context.h b/core/crypto/hashing_context.h index b9e600b623..a6318c999e 100644 --- a/core/crypto/hashing_context.h +++ b/core/crypto/hashing_context.h @@ -31,7 +31,7 @@ #pragma once #include "core/object/ref_counted.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" class HashingContext : public RefCounted { GDCLASS(HashingContext, RefCounted); diff --git a/core/debugger/local_debugger.cpp b/core/debugger/local_debugger.cpp index cd9d55380b..42e6c32324 100644 --- a/core/debugger/local_debugger.cpp +++ b/core/debugger/local_debugger.cpp @@ -34,6 +34,8 @@ #include "core/os/main_loop.h" #include "core/os/os.h" +#include + struct LocalDebugger::ScriptsProfiler { struct ProfileInfoSort { bool operator()(const ScriptLanguage::ProfilingInfo &A, const ScriptLanguage::ProfilingInfo &B) const { diff --git a/core/error/error_macros.cpp b/core/error/error_macros.cpp index 9734c79790..82e8376bcd 100644 --- a/core/error/error_macros.cpp +++ b/core/error/error_macros.cpp @@ -36,6 +36,8 @@ #include "core/os/os.h" #include "core/string/ustring.h" +#include + // Optional physics interpolation warnings try to include the path to the relevant node. #if defined(DEBUG_ENABLED) && defined(TOOLS_ENABLED) #include "core/config/project_settings.h" diff --git a/core/io/file_access.h b/core/io/file_access.h index e3302604cb..2d57e0c3e0 100644 --- a/core/io/file_access.h +++ b/core/io/file_access.h @@ -36,7 +36,7 @@ #include "core/os/memory.h" #include "core/string/ustring.h" #include "core/typedefs.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" /** * Multi-Platform abstraction for accessing to files. diff --git a/core/io/image_loader.h b/core/io/image_loader.h index 81ab00ffae..e8fbbc5110 100644 --- a/core/io/image_loader.h +++ b/core/io/image_loader.h @@ -36,7 +36,7 @@ #include "core/object/gdvirtual.gen.h" #include "core/string/ustring.h" #include "core/templates/list.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" class ImageLoader; diff --git a/core/io/ip.h b/core/io/ip.h index 46a7244dbc..f9de6316b3 100644 --- a/core/io/ip.h +++ b/core/io/ip.h @@ -31,7 +31,7 @@ #pragma once #include "core/io/ip_address.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" template class TypedArray; diff --git a/core/io/logger.cpp b/core/io/logger.cpp index c9625354d2..feab968add 100644 --- a/core/io/logger.cpp +++ b/core/io/logger.cpp @@ -39,6 +39,8 @@ #include "modules/modules_enabled.gen.h" // For regex. +#include + #ifdef MODULE_REGEX_ENABLED #include "modules/regex/regex.h" #endif // MODULE_REGEX_ENABLED diff --git a/core/io/xml_parser.h b/core/io/xml_parser.h index ce742fa7e7..01d763cda7 100644 --- a/core/io/xml_parser.h +++ b/core/io/xml_parser.h @@ -33,7 +33,7 @@ #include "core/object/ref_counted.h" #include "core/string/ustring.h" #include "core/templates/vector.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" /* Based on irrXML (see their zlib license). Added mainly for compatibility with their Collada loader. diff --git a/core/object/make_virtuals.py b/core/object/make_virtuals.py index 2a30949a5d..fe47477085 100644 --- a/core/object/make_virtuals.py +++ b/core/object/make_virtuals.py @@ -197,7 +197,9 @@ def run(target, source, env): #pragma once #include "core/object/script_instance.h" -#include "core/variant/binder_common.h" +#include "core/variant/method_ptrcall.h" +#include "core/variant/variant_caster.h" +#include "core/variant/variant_internal.h" inline constexpr uintptr_t _INVALID_GDVIRTUAL_FUNC_ADDR = static_cast(-1); diff --git a/core/object/undo_redo.h b/core/object/undo_redo.h index 249e030cbc..4359db4d0e 100644 --- a/core/object/undo_redo.h +++ b/core/object/undo_redo.h @@ -31,7 +31,7 @@ #pragma once #include "core/object/ref_counted.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" class UndoRedo : public Object { GDCLASS(UndoRedo, Object); diff --git a/core/os/time.h b/core/os/time.h index 83596b1a43..f34c151a5c 100644 --- a/core/os/time.h +++ b/core/os/time.h @@ -31,7 +31,7 @@ #pragma once #include "core/object/object.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" #include "time_enums.h" // This Time class conforms with as many of the ISO 8601 standards as possible. diff --git a/core/string/ustring.cpp b/core/string/ustring.cpp index 760746f88c..742a90d2a4 100644 --- a/core/string/ustring.cpp +++ b/core/string/ustring.cpp @@ -50,6 +50,8 @@ STATIC_ASSERT_INCOMPLETE_TYPE(class, Object); #include "thirdparty/grisu2/grisu2.h" +#include + #ifdef _MSC_VER #define _CRT_SECURE_NO_WARNINGS // to disable build-time warning which suggested to use strcpy_s instead strcpy #endif diff --git a/core/variant/binder_common.h b/core/variant/binder_common.h index 17cb5e8c6d..00a5b48e06 100644 --- a/core/variant/binder_common.h +++ b/core/variant/binder_common.h @@ -36,115 +36,11 @@ #include "core/variant/method_ptrcall.h" #include "core/variant/type_info.h" #include "core/variant/variant.h" +#include "core/variant/variant_caster.h" #include "core/variant/variant_internal.h" #include -enum class HatDir; -enum class HatMask; -enum class JoyAxis; -enum class JoyButton; - -enum class MIDIMessage; -enum class MouseButton; -enum class MouseButtonMask; - -enum class Key; -enum class KeyModifierMask; -enum class KeyLocation; - -// Variant cannot define an implicit cast operator for every Object subclass, so the -// casting is done here, to allow binding methods with parameters more specific than Object * - -template -struct VariantCaster { - static _FORCE_INLINE_ T cast(const Variant &p_variant) { - using TStripped = std::remove_pointer_t; - if constexpr (std::is_base_of_v) { - return Object::cast_to(p_variant); - } else { - return p_variant; - } - } -}; - -template -struct VariantCaster { - static _FORCE_INLINE_ T cast(const Variant &p_variant) { - using TStripped = std::remove_pointer_t; - if constexpr (std::is_base_of_v) { - return Object::cast_to(p_variant); - } else { - return p_variant; - } - } -}; - -template -struct VariantCaster { - static _FORCE_INLINE_ T cast(const Variant &p_variant) { - using TStripped = std::remove_pointer_t; - if constexpr (std::is_base_of_v) { - return Object::cast_to(p_variant); - } else { - return p_variant; - } - } -}; - -#define VARIANT_ENUM_CAST(m_enum) MAKE_ENUM_TYPE_INFO(m_enum, m_enum) -#define VARIANT_BITFIELD_CAST(m_enum) MAKE_BITFIELD_TYPE_INFO(m_enum, m_enum) - -// Use only for backwards compatibility when the location of an enum changes. -#define VARIANT_ENUM_CAST_EXT(m_enum, m_bound_name) MAKE_ENUM_TYPE_INFO(m_enum, m_bound_name) -#define VARIANT_BITFIELD_CAST_EXT(m_enum, m_bound_name) MAKE_BITFIELD_TYPE_INFO(m_enum, m_bound_name) - -// Object enum casts must go here -VARIANT_ENUM_CAST(Object::ConnectFlags); - -VARIANT_ENUM_CAST(Vector2::Axis); -VARIANT_ENUM_CAST(Vector2i::Axis); -VARIANT_ENUM_CAST(Vector3::Axis); -VARIANT_ENUM_CAST(Vector3i::Axis); -VARIANT_ENUM_CAST(Vector4::Axis); -VARIANT_ENUM_CAST(Vector4i::Axis); -VARIANT_ENUM_CAST(EulerOrder); -VARIANT_ENUM_CAST(Projection::Planes); - -VARIANT_ENUM_CAST(Error); -VARIANT_ENUM_CAST(Side); -VARIANT_ENUM_CAST(ClockDirection); -VARIANT_ENUM_CAST(Corner); -VARIANT_ENUM_CAST(HatDir); -VARIANT_BITFIELD_CAST(HatMask); -VARIANT_ENUM_CAST(JoyAxis); -VARIANT_ENUM_CAST(JoyButton); - -VARIANT_ENUM_CAST(MIDIMessage); -VARIANT_ENUM_CAST(MouseButton); -VARIANT_BITFIELD_CAST(MouseButtonMask); -VARIANT_ENUM_CAST(Orientation); -VARIANT_ENUM_CAST(HorizontalAlignment); -VARIANT_ENUM_CAST(VerticalAlignment); -VARIANT_ENUM_CAST(InlineAlignment); -VARIANT_ENUM_CAST(PropertyHint); -VARIANT_BITFIELD_CAST(PropertyUsageFlags); -VARIANT_ENUM_CAST(Variant::Type); -VARIANT_ENUM_CAST(Variant::Operator); - -// Key - -VARIANT_ENUM_CAST(Key); -VARIANT_BITFIELD_CAST(KeyModifierMask); -VARIANT_ENUM_CAST(KeyLocation); - -template <> -struct VariantCaster { - static _FORCE_INLINE_ char32_t cast(const Variant &p_variant) { - return (char32_t)p_variant.operator int(); - } -}; - template <> struct PtrToArg { _FORCE_INLINE_ static char32_t convert(const void *p_ptr) { @@ -156,80 +52,6 @@ struct PtrToArg { } }; -template -struct VariantObjectClassChecker { - static _FORCE_INLINE_ bool check(const Variant &p_variant) { - using TStripped = std::remove_pointer_t; - if constexpr (std::is_base_of_v) { - Object *obj = p_variant; - return Object::cast_to(p_variant) || !obj; - } else { - return true; - } - } -}; - -template -class Ref; - -template -struct VariantObjectClassChecker &> { - static _FORCE_INLINE_ bool check(const Variant &p_variant) { - Object *obj = p_variant; - const Ref node = p_variant; - return node.ptr() || !obj; - } -}; - -#ifdef DEBUG_ENABLED - -template -struct VariantCasterAndValidate { - static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, Callable::CallError &r_error) { - Variant::Type argtype = GetTypeInfo::VARIANT_TYPE; - if (!Variant::can_convert_strict(p_args[p_arg_idx]->get_type(), argtype) || - !VariantObjectClassChecker::check(*p_args[p_arg_idx])) { - r_error.error = Callable::CallError::CALL_ERROR_INVALID_ARGUMENT; - r_error.argument = p_arg_idx; - r_error.expected = argtype; - } - - return VariantCaster::cast(*p_args[p_arg_idx]); - } -}; - -template -struct VariantCasterAndValidate { - static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, Callable::CallError &r_error) { - Variant::Type argtype = GetTypeInfo::VARIANT_TYPE; - if (!Variant::can_convert_strict(p_args[p_arg_idx]->get_type(), argtype) || - !VariantObjectClassChecker::check(*p_args[p_arg_idx])) { - r_error.error = Callable::CallError::CALL_ERROR_INVALID_ARGUMENT; - r_error.argument = p_arg_idx; - r_error.expected = argtype; - } - - return VariantCaster::cast(*p_args[p_arg_idx]); - } -}; - -template -struct VariantCasterAndValidate { - static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, Callable::CallError &r_error) { - Variant::Type argtype = GetTypeInfo::VARIANT_TYPE; - if (!Variant::can_convert_strict(p_args[p_arg_idx]->get_type(), argtype) || - !VariantObjectClassChecker::check(*p_args[p_arg_idx])) { - r_error.error = Callable::CallError::CALL_ERROR_INVALID_ARGUMENT; - r_error.argument = p_arg_idx; - r_error.expected = argtype; - } - - return VariantCaster::cast(*p_args[p_arg_idx]); - } -}; - -#endif // DEBUG_ENABLED - template void call_with_variant_args_helper(T *p_instance, void (T::*p_method)(P...), const Variant **p_args, Callable::CallError &r_error, IndexSequence) { r_error.error = Callable::CallError::CALL_OK; diff --git a/core/variant/native_ptr.h b/core/variant/native_ptr.h index 70f92e78e7..59ee6ef4bd 100644 --- a/core/variant/native_ptr.h +++ b/core/variant/native_ptr.h @@ -31,9 +31,10 @@ #pragma once #include "core/math/audio_frame.h" -#include "core/variant/binder_common.h" #include "core/variant/method_ptrcall.h" #include "core/variant/type_info.h" +#include "core/variant/variant_caster.h" +#include "core/variant/variant_internal.h" template struct GDExtensionConstPtr { diff --git a/core/variant/type_info.h b/core/variant/type_info.h index 9035c4e80b..ba254e9dd6 100644 --- a/core/variant/type_info.h +++ b/core/variant/type_info.h @@ -290,6 +290,13 @@ inline StringName __constant_get_bitfield_name(T param) { } #define CLASS_INFO(m_type) (GetTypeInfo::get_class_info()) +#define VARIANT_ENUM_CAST(m_enum) MAKE_ENUM_TYPE_INFO(m_enum, m_enum) +#define VARIANT_BITFIELD_CAST(m_enum) MAKE_BITFIELD_TYPE_INFO(m_enum, m_enum) + +// Use only for backwards compatibility when the location of an enum changes. +#define VARIANT_ENUM_CAST_EXT(m_enum, m_bound_name) MAKE_ENUM_TYPE_INFO(m_enum, m_bound_name) +#define VARIANT_BITFIELD_CAST_EXT(m_enum, m_bound_name) MAKE_BITFIELD_TYPE_INFO(m_enum, m_bound_name) + // No initialization by default, except for scalar types. template struct ZeroInitializer { diff --git a/core/variant/variant_caster.h b/core/variant/variant_caster.h new file mode 100644 index 0000000000..0815a42318 --- /dev/null +++ b/core/variant/variant_caster.h @@ -0,0 +1,206 @@ +/**************************************************************************/ +/* variant_caster.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 + +#include "core/object/object.h" +#include "core/variant/type_info.h" + +enum class HatDir; +enum class HatMask; +enum class JoyAxis; +enum class JoyButton; + +enum class MIDIMessage; +enum class MouseButton; +enum class MouseButtonMask; + +enum class Key; +enum class KeyModifierMask; +enum class KeyLocation; + +// Variant cannot define an implicit cast operator for every Object subclass, so the +// casting is done here, to allow binding methods with parameters more specific than Object * + +template +struct VariantCaster { + static _FORCE_INLINE_ T cast(const Variant &p_variant) { + using TStripped = std::remove_pointer_t; + if constexpr (std::is_base_of_v) { + return Object::cast_to(p_variant); + } else { + return p_variant; + } + } +}; + +template +struct VariantCaster { + static _FORCE_INLINE_ T cast(const Variant &p_variant) { + using TStripped = std::remove_pointer_t; + if constexpr (std::is_base_of_v) { + return Object::cast_to(p_variant); + } else { + return p_variant; + } + } +}; + +template +struct VariantCaster { + static _FORCE_INLINE_ T cast(const Variant &p_variant) { + using TStripped = std::remove_pointer_t; + if constexpr (std::is_base_of_v) { + return Object::cast_to(p_variant); + } else { + return p_variant; + } + } +}; + +// Object enum casts must go here +VARIANT_ENUM_CAST(Object::ConnectFlags); + +VARIANT_ENUM_CAST(Vector2::Axis); +VARIANT_ENUM_CAST(Vector2i::Axis); +VARIANT_ENUM_CAST(Vector3::Axis); +VARIANT_ENUM_CAST(Vector3i::Axis); +VARIANT_ENUM_CAST(Vector4::Axis); +VARIANT_ENUM_CAST(Vector4i::Axis); +VARIANT_ENUM_CAST(EulerOrder); +VARIANT_ENUM_CAST(Projection::Planes); + +VARIANT_ENUM_CAST(Error); +VARIANT_ENUM_CAST(Side); +VARIANT_ENUM_CAST(ClockDirection); +VARIANT_ENUM_CAST(Corner); +VARIANT_ENUM_CAST(HatDir); +VARIANT_BITFIELD_CAST(HatMask); +VARIANT_ENUM_CAST(JoyAxis); +VARIANT_ENUM_CAST(JoyButton); + +VARIANT_ENUM_CAST(MIDIMessage); +VARIANT_ENUM_CAST(MouseButton); +VARIANT_BITFIELD_CAST(MouseButtonMask); +VARIANT_ENUM_CAST(Orientation); +VARIANT_ENUM_CAST(HorizontalAlignment); +VARIANT_ENUM_CAST(VerticalAlignment); +VARIANT_ENUM_CAST(InlineAlignment); +VARIANT_ENUM_CAST(PropertyHint); +VARIANT_BITFIELD_CAST(PropertyUsageFlags); +VARIANT_ENUM_CAST(Variant::Type); +VARIANT_ENUM_CAST(Variant::Operator); + +// Key + +VARIANT_ENUM_CAST(Key); +VARIANT_BITFIELD_CAST(KeyModifierMask); +VARIANT_ENUM_CAST(KeyLocation); + +template <> +struct VariantCaster { + static _FORCE_INLINE_ char32_t cast(const Variant &p_variant) { + return (char32_t)p_variant.operator int(); + } +}; + +template +struct VariantObjectClassChecker { + static _FORCE_INLINE_ bool check(const Variant &p_variant) { + using TStripped = std::remove_pointer_t; + if constexpr (std::is_base_of_v) { + Object *obj = p_variant; + return Object::cast_to(p_variant) || !obj; + } else { + return true; + } + } +}; + +template +class Ref; + +template +struct VariantObjectClassChecker &> { + static _FORCE_INLINE_ bool check(const Variant &p_variant) { + Object *obj = p_variant; + const Ref node = p_variant; + return node.ptr() || !obj; + } +}; + +#ifdef DEBUG_ENABLED + +template +struct VariantCasterAndValidate { + static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, Callable::CallError &r_error) { + Variant::Type argtype = GetTypeInfo::VARIANT_TYPE; + if (!Variant::can_convert_strict(p_args[p_arg_idx]->get_type(), argtype) || + !VariantObjectClassChecker::check(*p_args[p_arg_idx])) { + r_error.error = Callable::CallError::CALL_ERROR_INVALID_ARGUMENT; + r_error.argument = p_arg_idx; + r_error.expected = argtype; + } + + return VariantCaster::cast(*p_args[p_arg_idx]); + } +}; + +template +struct VariantCasterAndValidate { + static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, Callable::CallError &r_error) { + Variant::Type argtype = GetTypeInfo::VARIANT_TYPE; + if (!Variant::can_convert_strict(p_args[p_arg_idx]->get_type(), argtype) || + !VariantObjectClassChecker::check(*p_args[p_arg_idx])) { + r_error.error = Callable::CallError::CALL_ERROR_INVALID_ARGUMENT; + r_error.argument = p_arg_idx; + r_error.expected = argtype; + } + + return VariantCaster::cast(*p_args[p_arg_idx]); + } +}; + +template +struct VariantCasterAndValidate { + static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, Callable::CallError &r_error) { + Variant::Type argtype = GetTypeInfo::VARIANT_TYPE; + if (!Variant::can_convert_strict(p_args[p_arg_idx]->get_type(), argtype) || + !VariantObjectClassChecker::check(*p_args[p_arg_idx])) { + r_error.error = Callable::CallError::CALL_ERROR_INVALID_ARGUMENT; + r_error.argument = p_arg_idx; + r_error.expected = argtype; + } + + return VariantCaster::cast(*p_args[p_arg_idx]); + } +}; + +#endif // DEBUG_ENABLED diff --git a/core/variant/variant_construct.h b/core/variant/variant_construct.h index 9fdb6d2313..48391488f3 100644 --- a/core/variant/variant_construct.h +++ b/core/variant/variant_construct.h @@ -37,6 +37,7 @@ #include "core/io/compression.h" #include "core/templates/a_hash_map.h" #include "core/templates/local_vector.h" +#include "core/variant/binder_common.h" #include "core/variant/native_ptr.h" #include "core/variant/variant_internal.h" diff --git a/editor/export/editor_export_preset.h b/editor/export/editor_export_preset.h index a1cc24f827..0c1b9dc8b3 100644 --- a/editor/export/editor_export_preset.h +++ b/editor/export/editor_export_preset.h @@ -33,7 +33,7 @@ class EditorExportPlatform; #include "core/object/ref_counted.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" class EditorExportPreset : public RefCounted { GDCLASS(EditorExportPreset, RefCounted); diff --git a/main/performance.h b/main/performance.h index c52839d48e..989ec74586 100644 --- a/main/performance.h +++ b/main/performance.h @@ -32,7 +32,7 @@ #include "core/object/object.h" #include "core/templates/hash_map.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" #define PERF_WARN_OFFLINE_FUNCTION #define PERF_WARN_PROCESS_SYNC diff --git a/modules/jsonrpc/jsonrpc.h b/modules/jsonrpc/jsonrpc.h index 9f1ab5bdfa..eac5b1dd1c 100644 --- a/modules/jsonrpc/jsonrpc.h +++ b/modules/jsonrpc/jsonrpc.h @@ -31,7 +31,7 @@ #pragma once #include "core/object/object.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" #include "core/variant/variant.h" class JSONRPC : public Object { diff --git a/modules/navigation_2d/nav_link_2d.h b/modules/navigation_2d/nav_link_2d.h index 46d74f97e8..ea1bf0bed6 100644 --- a/modules/navigation_2d/nav_link_2d.h +++ b/modules/navigation_2d/nav_link_2d.h @@ -32,7 +32,6 @@ #include "2d/nav_base_iteration_2d.h" #include "core/os/rw_lock.h" -#include "core/variant/binder_common.h" #include "nav_base_2d.h" #include "nav_utils_2d.h" diff --git a/modules/upnp/upnp.h b/modules/upnp/upnp.h index 0b3adb185e..00a0523f73 100644 --- a/modules/upnp/upnp.h +++ b/modules/upnp/upnp.h @@ -33,7 +33,6 @@ #include "upnp_device.h" #include "core/object/ref_counted.h" -#include "core/variant/binder_common.h" class UPNP : public RefCounted { GDCLASS(UPNP, RefCounted); diff --git a/modules/upnp/upnp_device.h b/modules/upnp/upnp_device.h index 64602ea70b..83f2e1da2b 100644 --- a/modules/upnp/upnp_device.h +++ b/modules/upnp/upnp_device.h @@ -31,7 +31,7 @@ #pragma once #include "core/object/ref_counted.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" class UPNPDevice : public RefCounted { GDCLASS(UPNPDevice, RefCounted); diff --git a/platform/linuxbsd/crash_handler_linuxbsd.cpp b/platform/linuxbsd/crash_handler_linuxbsd.cpp index 0d08567260..6a81926765 100644 --- a/platform/linuxbsd/crash_handler_linuxbsd.cpp +++ b/platform/linuxbsd/crash_handler_linuxbsd.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include static void handle_crash(int sig) { diff --git a/platform/macos/crash_handler_macos.mm b/platform/macos/crash_handler_macos.mm index adebc02453..0bef01a6a9 100644 --- a/platform/macos/crash_handler_macos.mm +++ b/platform/macos/crash_handler_macos.mm @@ -39,6 +39,7 @@ #include "main/main.h" #include +#include #if defined(DEBUG_ENABLED) #define CRASH_HANDLER_ENABLED 1 diff --git a/scene/animation/tween.h b/scene/animation/tween.h index 4c0ba917c7..bb3ce23476 100644 --- a/scene/animation/tween.h +++ b/scene/animation/tween.h @@ -31,7 +31,7 @@ #pragma once #include "core/object/ref_counted.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" class Tween; class Node; diff --git a/servers/camera/camera_server.h b/servers/camera/camera_server.h index a69371e9bb..c8de5b7b5c 100644 --- a/servers/camera/camera_server.h +++ b/servers/camera/camera_server.h @@ -34,7 +34,7 @@ #include "core/object/ref_counted.h" #include "core/os/thread_safe.h" #include "core/templates/rid.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" /** The camera server is a singleton object that gives access to the various diff --git a/servers/display/accessibility_server.h b/servers/display/accessibility_server.h index d54292bf2f..2229776731 100644 --- a/servers/display/accessibility_server.h +++ b/servers/display/accessibility_server.h @@ -31,7 +31,7 @@ #pragma once #include "core/object/object.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" #include "servers/display/accessibility_server_enums.h" #include "servers/display/display_server_enums.h" diff --git a/servers/display/display_server.h b/servers/display/display_server.h index 00688f7c3b..231c655e2a 100644 --- a/servers/display/display_server.h +++ b/servers/display/display_server.h @@ -30,6 +30,7 @@ #pragma once +#include "core/input/input_enums.h" #include "core/io/image.h" #include "core/io/resource.h" #include "core/object/object.h" diff --git a/servers/display/native_menu.h b/servers/display/native_menu.h index 2240b2f86d..3adf829941 100644 --- a/servers/display/native_menu.h +++ b/servers/display/native_menu.h @@ -32,8 +32,8 @@ #include "core/object/object.h" #include "core/os/keyboard.h" -#include "core/variant/binder_common.h" #include "core/variant/callable.h" +#include "core/variant/type_info.h" class Texture2D; diff --git a/servers/navigation_2d/navigation_path_query_parameters_2d.h b/servers/navigation_2d/navigation_path_query_parameters_2d.h index c281631d97..381b16f7b0 100644 --- a/servers/navigation_2d/navigation_path_query_parameters_2d.h +++ b/servers/navigation_2d/navigation_path_query_parameters_2d.h @@ -31,7 +31,7 @@ #pragma once #include "core/object/ref_counted.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" #include "servers/navigation_2d/navigation_constants_2d.h" class NavigationPathQueryParameters2D : public RefCounted { diff --git a/servers/navigation_2d/navigation_path_query_result_2d.h b/servers/navigation_2d/navigation_path_query_result_2d.h index 2529c62894..41c9921581 100644 --- a/servers/navigation_2d/navigation_path_query_result_2d.h +++ b/servers/navigation_2d/navigation_path_query_result_2d.h @@ -31,7 +31,7 @@ #pragma once #include "core/object/ref_counted.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" #include "core/variant/typed_array.h" #include "servers/navigation_2d/navigation_constants_2d.h" diff --git a/servers/navigation_3d/navigation_path_query_parameters_3d.h b/servers/navigation_3d/navigation_path_query_parameters_3d.h index 99364536ee..43ab6e48ce 100644 --- a/servers/navigation_3d/navigation_path_query_parameters_3d.h +++ b/servers/navigation_3d/navigation_path_query_parameters_3d.h @@ -31,7 +31,7 @@ #pragma once #include "core/object/ref_counted.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" #include "servers/navigation_3d/navigation_constants_3d.h" class NavigationPathQueryParameters3D : public RefCounted { diff --git a/servers/navigation_3d/navigation_path_query_result_3d.h b/servers/navigation_3d/navigation_path_query_result_3d.h index 70fdbc1868..cc2e4b0ee7 100644 --- a/servers/navigation_3d/navigation_path_query_result_3d.h +++ b/servers/navigation_3d/navigation_path_query_result_3d.h @@ -31,7 +31,7 @@ #pragma once #include "core/object/ref_counted.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" #include "core/variant/typed_array.h" #include "servers/navigation_3d/navigation_constants_3d.h" diff --git a/servers/rendering/rendering_device.h b/servers/rendering/rendering_device.h index d5fb3d43fc..5c7c9cf241 100644 --- a/servers/rendering/rendering_device.h +++ b/servers/rendering/rendering_device.h @@ -36,7 +36,7 @@ #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/type_info.h" #include "core/variant/typed_array.h" #include "servers/display/display_server_enums.h" #include "servers/rendering/rendering_device_commons.h" diff --git a/servers/xr/xr_interface.h b/servers/xr/xr_interface.h index d1c118bccc..5c8bd894d2 100644 --- a/servers/xr/xr_interface.h +++ b/servers/xr/xr_interface.h @@ -32,7 +32,7 @@ #include "core/object/ref_counted.h" #include "core/os/thread_safe.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" /** The XR interface is a template class on top of which we build interface to different AR, VR and tracking SDKs. diff --git a/servers/xr/xr_pose.h b/servers/xr/xr_pose.h index 25ad6f1d3a..65a15b32ee 100644 --- a/servers/xr/xr_pose.h +++ b/servers/xr/xr_pose.h @@ -31,7 +31,7 @@ #pragma once #include "core/object/ref_counted.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" class XRPose : public RefCounted { GDCLASS(XRPose, RefCounted); diff --git a/servers/xr/xr_server.h b/servers/xr/xr_server.h index 716e58e8c8..31bc4df15f 100644 --- a/servers/xr/xr_server.h +++ b/servers/xr/xr_server.h @@ -32,7 +32,7 @@ #include "core/object/ref_counted.h" #include "core/os/thread_safe.h" -#include "core/variant/binder_common.h" +#include "core/variant/type_info.h" #include "core/variant/variant.h" class XRInterface;