diff options
166 files changed, 2464 insertions, 2259 deletions
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index ef9894bcdb..2a3c298633 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,4 +1,4 @@ -**Operating system or device - Godot version:** +**Operating system or device, Godot version, GPU Model and driver (if graphics related):** **Issue description:** diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp index 1c9eef3d16..5f534f63a8 100644 --- a/core/bind/core_bind.cpp +++ b/core/bind/core_bind.cpp @@ -151,12 +151,12 @@ void _ResourceSaver::_bind_methods() { ClassDB::bind_method(D_METHOD("save", "path", "resource", "flags"), &_ResourceSaver::save, DEFVAL(0)); ClassDB::bind_method(D_METHOD("get_recognized_extensions", "type"), &_ResourceSaver::get_recognized_extensions); - BIND_CONSTANT(FLAG_RELATIVE_PATHS); - BIND_CONSTANT(FLAG_BUNDLE_RESOURCES); - BIND_CONSTANT(FLAG_CHANGE_PATH); - BIND_CONSTANT(FLAG_OMIT_EDITOR_PROPERTIES); - BIND_CONSTANT(FLAG_SAVE_BIG_ENDIAN); - BIND_CONSTANT(FLAG_COMPRESS); + BIND_ENUM_CONSTANT(FLAG_RELATIVE_PATHS); + BIND_ENUM_CONSTANT(FLAG_BUNDLE_RESOURCES); + BIND_ENUM_CONSTANT(FLAG_CHANGE_PATH); + BIND_ENUM_CONSTANT(FLAG_OMIT_EDITOR_PROPERTIES); + BIND_ENUM_CONSTANT(FLAG_SAVE_BIG_ENDIAN); + BIND_ENUM_CONSTANT(FLAG_COMPRESS); } _ResourceSaver::_ResourceSaver() { @@ -978,9 +978,9 @@ void _OS::_bind_methods() { ClassDB::bind_method(D_METHOD("get_screen_count"), &_OS::get_screen_count); ClassDB::bind_method(D_METHOD("get_current_screen"), &_OS::get_current_screen); ClassDB::bind_method(D_METHOD("set_current_screen", "screen"), &_OS::set_current_screen); - ClassDB::bind_method(D_METHOD("get_screen_position", "screen"), &_OS::get_screen_position, DEFVAL(0)); - ClassDB::bind_method(D_METHOD("get_screen_size", "screen"), &_OS::get_screen_size, DEFVAL(0)); - ClassDB::bind_method(D_METHOD("get_screen_dpi", "screen"), &_OS::get_screen_dpi, DEFVAL(0)); + ClassDB::bind_method(D_METHOD("get_screen_position", "screen"), &_OS::get_screen_position, DEFVAL(-1)); + ClassDB::bind_method(D_METHOD("get_screen_size", "screen"), &_OS::get_screen_size, DEFVAL(-1)); + ClassDB::bind_method(D_METHOD("get_screen_dpi", "screen"), &_OS::get_screen_dpi, DEFVAL(-1)); ClassDB::bind_method(D_METHOD("get_window_position"), &_OS::get_window_position); ClassDB::bind_method(D_METHOD("set_window_position", "position"), &_OS::set_window_position); ClassDB::bind_method(D_METHOD("get_window_size"), &_OS::get_window_size); @@ -1104,49 +1104,49 @@ void _OS::_bind_methods() { ClassDB::bind_method(D_METHOD("get_power_seconds_left"), &_OS::get_power_seconds_left); ClassDB::bind_method(D_METHOD("get_power_percent_left"), &_OS::get_power_percent_left); - BIND_CONSTANT(DAY_SUNDAY); - BIND_CONSTANT(DAY_MONDAY); - BIND_CONSTANT(DAY_TUESDAY); - BIND_CONSTANT(DAY_WEDNESDAY); - BIND_CONSTANT(DAY_THURSDAY); - BIND_CONSTANT(DAY_FRIDAY); - BIND_CONSTANT(DAY_SATURDAY); - - BIND_CONSTANT(MONTH_JANUARY); - BIND_CONSTANT(MONTH_FEBRUARY); - BIND_CONSTANT(MONTH_MARCH); - BIND_CONSTANT(MONTH_APRIL); - BIND_CONSTANT(MONTH_MAY); - BIND_CONSTANT(MONTH_JUNE); - BIND_CONSTANT(MONTH_JULY); - BIND_CONSTANT(MONTH_AUGUST); - BIND_CONSTANT(MONTH_SEPTEMBER); - BIND_CONSTANT(MONTH_OCTOBER); - BIND_CONSTANT(MONTH_NOVEMBER); - BIND_CONSTANT(MONTH_DECEMBER); - - BIND_CONSTANT(SCREEN_ORIENTATION_LANDSCAPE); - BIND_CONSTANT(SCREEN_ORIENTATION_PORTRAIT); - BIND_CONSTANT(SCREEN_ORIENTATION_REVERSE_LANDSCAPE); - BIND_CONSTANT(SCREEN_ORIENTATION_REVERSE_PORTRAIT); - BIND_CONSTANT(SCREEN_ORIENTATION_SENSOR_LANDSCAPE); - BIND_CONSTANT(SCREEN_ORIENTATION_SENSOR_PORTRAIT); - BIND_CONSTANT(SCREEN_ORIENTATION_SENSOR); - - BIND_CONSTANT(SYSTEM_DIR_DESKTOP); - BIND_CONSTANT(SYSTEM_DIR_DCIM); - BIND_CONSTANT(SYSTEM_DIR_DOCUMENTS); - BIND_CONSTANT(SYSTEM_DIR_DOWNLOADS); - BIND_CONSTANT(SYSTEM_DIR_MOVIES); - BIND_CONSTANT(SYSTEM_DIR_MUSIC); - BIND_CONSTANT(SYSTEM_DIR_PICTURES); - BIND_CONSTANT(SYSTEM_DIR_RINGTONES); - - BIND_CONSTANT(POWERSTATE_UNKNOWN); - BIND_CONSTANT(POWERSTATE_ON_BATTERY); - BIND_CONSTANT(POWERSTATE_NO_BATTERY); - BIND_CONSTANT(POWERSTATE_CHARGING); - BIND_CONSTANT(POWERSTATE_CHARGED); + BIND_ENUM_CONSTANT(DAY_SUNDAY); + BIND_ENUM_CONSTANT(DAY_MONDAY); + BIND_ENUM_CONSTANT(DAY_TUESDAY); + BIND_ENUM_CONSTANT(DAY_WEDNESDAY); + BIND_ENUM_CONSTANT(DAY_THURSDAY); + BIND_ENUM_CONSTANT(DAY_FRIDAY); + BIND_ENUM_CONSTANT(DAY_SATURDAY); + + BIND_ENUM_CONSTANT(MONTH_JANUARY); + BIND_ENUM_CONSTANT(MONTH_FEBRUARY); + BIND_ENUM_CONSTANT(MONTH_MARCH); + BIND_ENUM_CONSTANT(MONTH_APRIL); + BIND_ENUM_CONSTANT(MONTH_MAY); + BIND_ENUM_CONSTANT(MONTH_JUNE); + BIND_ENUM_CONSTANT(MONTH_JULY); + BIND_ENUM_CONSTANT(MONTH_AUGUST); + BIND_ENUM_CONSTANT(MONTH_SEPTEMBER); + BIND_ENUM_CONSTANT(MONTH_OCTOBER); + BIND_ENUM_CONSTANT(MONTH_NOVEMBER); + BIND_ENUM_CONSTANT(MONTH_DECEMBER); + + BIND_ENUM_CONSTANT(SCREEN_ORIENTATION_LANDSCAPE); + BIND_ENUM_CONSTANT(SCREEN_ORIENTATION_PORTRAIT); + BIND_ENUM_CONSTANT(SCREEN_ORIENTATION_REVERSE_LANDSCAPE); + BIND_ENUM_CONSTANT(SCREEN_ORIENTATION_REVERSE_PORTRAIT); + BIND_ENUM_CONSTANT(SCREEN_ORIENTATION_SENSOR_LANDSCAPE); + BIND_ENUM_CONSTANT(SCREEN_ORIENTATION_SENSOR_PORTRAIT); + BIND_ENUM_CONSTANT(SCREEN_ORIENTATION_SENSOR); + + BIND_ENUM_CONSTANT(SYSTEM_DIR_DESKTOP); + BIND_ENUM_CONSTANT(SYSTEM_DIR_DCIM); + BIND_ENUM_CONSTANT(SYSTEM_DIR_DOCUMENTS); + BIND_ENUM_CONSTANT(SYSTEM_DIR_DOWNLOADS); + BIND_ENUM_CONSTANT(SYSTEM_DIR_MOVIES); + BIND_ENUM_CONSTANT(SYSTEM_DIR_MUSIC); + BIND_ENUM_CONSTANT(SYSTEM_DIR_PICTURES); + BIND_ENUM_CONSTANT(SYSTEM_DIR_RINGTONES); + + BIND_ENUM_CONSTANT(POWERSTATE_UNKNOWN); + BIND_ENUM_CONSTANT(POWERSTATE_ON_BATTERY); + BIND_ENUM_CONSTANT(POWERSTATE_NO_BATTERY); + BIND_ENUM_CONSTANT(POWERSTATE_CHARGING); + BIND_ENUM_CONSTANT(POWERSTATE_CHARGED); } _OS::_OS() { @@ -1406,11 +1406,10 @@ Error _File::open_encrypted_pass(const String &p_path, int p_mode_flags, const S Error _File::open_compressed(const String &p_path, int p_mode_flags, int p_compress_mode) { FileAccessCompressed *fac = memnew(FileAccessCompressed); - Error err = OK; fac->configure("GCPF", (Compression::Mode)p_compress_mode); - err = fac->_open(p_path, p_mode_flags); + Error err = fac->_open(p_path, p_mode_flags); if (err) { memdelete(fac); @@ -1772,15 +1771,15 @@ void _File::_bind_methods() { ClassDB::bind_method(D_METHOD("file_exists", "path"), &_File::file_exists); ClassDB::bind_method(D_METHOD("get_modified_time", "file"), &_File::get_modified_time); - BIND_CONSTANT(READ); - BIND_CONSTANT(WRITE); - BIND_CONSTANT(READ_WRITE); - BIND_CONSTANT(WRITE_READ); + BIND_ENUM_CONSTANT(READ); + BIND_ENUM_CONSTANT(WRITE); + BIND_ENUM_CONSTANT(READ_WRITE); + BIND_ENUM_CONSTANT(WRITE_READ); - BIND_CONSTANT(COMPRESSION_FASTLZ); - BIND_CONSTANT(COMPRESSION_DEFLATE); - BIND_CONSTANT(COMPRESSION_ZSTD); - BIND_CONSTANT(COMPRESSION_GZIP); + BIND_ENUM_CONSTANT(COMPRESSION_FASTLZ); + BIND_ENUM_CONSTANT(COMPRESSION_DEFLATE); + BIND_ENUM_CONSTANT(COMPRESSION_ZSTD); + BIND_ENUM_CONSTANT(COMPRESSION_GZIP); } _File::_File() { @@ -2285,9 +2284,9 @@ void _Thread::_bind_methods() { ClassDB::bind_method(D_METHOD("is_active"), &_Thread::is_active); ClassDB::bind_method(D_METHOD("wait_to_finish"), &_Thread::wait_to_finish); - BIND_CONSTANT(PRIORITY_LOW); - BIND_CONSTANT(PRIORITY_NORMAL); - BIND_CONSTANT(PRIORITY_HIGH); + BIND_ENUM_CONSTANT(PRIORITY_LOW); + BIND_ENUM_CONSTANT(PRIORITY_NORMAL); + BIND_ENUM_CONSTANT(PRIORITY_HIGH); } _Thread::_Thread() { diff --git a/core/bind/core_bind.h b/core/bind/core_bind.h index d3314cc3b3..fc280bd7ef 100644 --- a/core/bind/core_bind.h +++ b/core/bind/core_bind.h @@ -85,6 +85,8 @@ public: _ResourceSaver(); }; +VARIANT_ENUM_CAST(_ResourceSaver::SaverFlags); + class MainLoop; class _OS : public Object { @@ -138,9 +140,9 @@ public: virtual int get_screen_count() const; virtual int get_current_screen() const; virtual void set_current_screen(int p_screen); - virtual Point2 get_screen_position(int p_screen = 0) const; - virtual Size2 get_screen_size(int p_screen = 0) const; - virtual int get_screen_dpi(int p_screen = 0) const; + virtual Point2 get_screen_position(int p_screen = -1) const; + virtual Size2 get_screen_size(int p_screen = -1) const; + virtual int get_screen_dpi(int p_screen = -1) const; virtual Point2 get_window_position() const; virtual void set_window_position(const Point2 &p_position); virtual Size2 get_window_size() const; @@ -310,6 +312,8 @@ public: _OS(); }; +VARIANT_ENUM_CAST(_OS::Weekday); +VARIANT_ENUM_CAST(_OS::Month); VARIANT_ENUM_CAST(_OS::SystemDir); VARIANT_ENUM_CAST(_OS::ScreenOrientation); @@ -447,6 +451,9 @@ public: virtual ~_File(); }; +VARIANT_ENUM_CAST(_File::ModeFlags); +VARIANT_ENUM_CAST(_File::CompressionMode); + class _Directory : public Reference { GDCLASS(_Directory, Reference); @@ -578,6 +585,8 @@ public: ~_Thread(); }; +VARIANT_ENUM_CAST(_Thread::Priority); + class _ClassDB : public Object { GDCLASS(_ClassDB, Object) diff --git a/core/class_db.cpp b/core/class_db.cpp index 0503f7c6fc..6cd7586a54 100644 --- a/core/class_db.cpp +++ b/core/class_db.cpp @@ -583,7 +583,7 @@ MethodBind *ClassDB::get_method(StringName p_class, StringName p_name) { return NULL; } -void ClassDB::bind_integer_constant(const StringName &p_class, const StringName &p_name, int p_constant) { +void ClassDB::bind_integer_constant(const StringName &p_class, const StringName &p_enum, const StringName &p_name, int p_constant) { OBJTYPE_WLOCK; @@ -600,6 +600,16 @@ void ClassDB::bind_integer_constant(const StringName &p_class, const StringName type->constant_map[p_name] = p_constant; #ifdef DEBUG_METHODS_ENABLED + List<StringName> *constants_list = type->enum_map.getptr(p_enum); + + if (constants_list) { + constants_list->push_back(p_name); + } else { + List<StringName> new_list; + new_list.push_back(p_name); + type->enum_map[p_enum] = new_list; + } + type->constant_order.push_back(p_name); #endif } @@ -655,6 +665,77 @@ int ClassDB::get_integer_constant(const StringName &p_class, const StringName &p return 0; } +#ifdef DEBUG_METHODS_ENABLED +StringName ClassDB::get_integer_constant_enum(const StringName &p_class, const StringName &p_name, bool p_no_inheritance) { + + OBJTYPE_RLOCK; + + ClassInfo *type = classes.getptr(p_class); + + while (type) { + + const StringName *k = NULL; + while ((k = type->enum_map.next(k))) { + + List<StringName> &constants_list = type->enum_map.get(*k); + const List<StringName>::Element *found = constants_list.find(p_name); + if (found) + return found->get(); + } + + if (p_no_inheritance) + break; + + type = type->inherits_ptr; + } + + return StringName(); +} + +void ClassDB::get_enum_list(const StringName &p_class, List<StringName> *p_enums, bool p_no_inheritance) { + + OBJTYPE_RLOCK; + + ClassInfo *type = classes.getptr(p_class); + + while (type) { + + const StringName *k = NULL; + while ((k = type->enum_map.next(k))) { + p_enums->push_back(*k); + } + + if (p_no_inheritance) + break; + + type = type->inherits_ptr; + } +} + +void ClassDB::get_enum_constants(const StringName &p_class, const StringName &p_enum, List<StringName> *p_constants, bool p_no_inheritance) { + + OBJTYPE_RLOCK; + + ClassInfo *type = classes.getptr(p_class); + + while (type) { + + const List<StringName> *constants = type->enum_map.getptr(p_enum); + + if (constants) { + for (const List<StringName>::Element *E = constants->front(); E; E = E->next()) { + p_constants->push_back(E->get()); + } + } + + if (p_no_inheritance) + break; + + type = type->inherits_ptr; + } +} +#endif + void ClassDB::add_signal(StringName p_class, const MethodInfo &p_signal) { OBJTYPE_WLOCK; diff --git a/core/class_db.h b/core/class_db.h index 4287c5990f..8d9192adcc 100644 --- a/core/class_db.h +++ b/core/class_db.h @@ -138,6 +138,7 @@ public: HashMap<StringName, MethodInfo, StringNameHasher> signal_map; List<PropertyInfo> property_list; #ifdef DEBUG_METHODS_ENABLED + HashMap<StringName, List<StringName> > enum_map; List<StringName> constant_order; List<StringName> method_order; Set<StringName> methods_in_properties; @@ -488,9 +489,16 @@ public: static void add_virtual_method(const StringName &p_class, const MethodInfo &p_method, bool p_virtual = true); static void get_virtual_methods(const StringName &p_class, List<MethodInfo> *p_methods, bool p_no_inheritance = false); - static void bind_integer_constant(const StringName &p_class, const StringName &p_name, int p_constant); + static void bind_integer_constant(const StringName &p_class, const StringName &p_enum, const StringName &p_name, int p_constant); static void get_integer_constant_list(const StringName &p_class, List<String> *p_constants, bool p_no_inheritance = false); static int get_integer_constant(const StringName &p_class, const StringName &p_name, bool *p_success = NULL); + +#ifdef DEBUG_METHODS_ENABLED + static StringName get_integer_constant_enum(const StringName &p_class, const StringName &p_name, bool p_no_inheritance = false); + static void get_enum_list(const StringName &p_class, List<StringName> *p_enums, bool p_no_inheritance = false); + static void get_enum_constants(const StringName &p_class, const StringName &p_enum, List<StringName> *p_constants, bool p_no_inheritance = false); +#endif + static StringName get_category(const StringName &p_node); static bool get_setter_and_type_for_property(const StringName &p_class, const StringName &p_prop, StringName &r_class, StringName &r_setter); @@ -509,8 +517,23 @@ public: static void cleanup(); }; +#ifdef DEBUG_METHODS_ENABLED + +#define BIND_CONSTANT(m_constant) \ + ClassDB::bind_integer_constant(get_class_static(), StringName(), #m_constant, m_constant); + +#define BIND_ENUM_CONSTANT(m_constant) \ + ClassDB::bind_integer_constant(get_class_static(), __constant_get_enum_name(m_constant, #m_constant), #m_constant, m_constant); + +#else + #define BIND_CONSTANT(m_constant) \ - ClassDB::bind_integer_constant(get_class_static(), #m_constant, m_constant); + ClassDB::bind_integer_constant(get_class_static(), StringName(), #m_constant, m_constant); + +#define BIND_ENUM_CONSTANT(m_constant) \ + ClassDB::bind_integer_constant(get_class_static(), StringName(), #m_constant, m_constant); + +#endif #ifdef TOOLS_ENABLED diff --git a/core/global_constants.cpp b/core/global_constants.cpp index 9e745ecb98..d296b678b9 100644 --- a/core/global_constants.cpp +++ b/core/global_constants.cpp @@ -10,7 +10,7 @@ /* */ /* 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 */ +/* "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 */ @@ -36,504 +36,563 @@ struct _GlobalConstant { +#ifdef DEBUG_METHODS_ENABLED + StringName enum_name; +#endif const char *name; int value; + + _GlobalConstant() {} + +#ifdef DEBUG_METHODS_ENABLED + _GlobalConstant(const StringName &p_enum_name, const char *p_name, int p_value) { + enum_name = p_enum_name; + name = p_name; + value = p_value; + } +#else + _GlobalConstant(const char *p_name, int p_value) { + name = p_name; + value = p_value; + } +#endif }; +static Vector<_GlobalConstant> _global_constants; + +#ifdef DEBUG_METHODS_ENABLED + +#define BIND_GLOBAL_CONSTANT(m_constant) \ + _global_constants.push_back(_GlobalConstant(StringName(), #m_constant, m_constant)); + +#define BIND_GLOBAL_ENUM_CONSTANT(m_constant) \ + _global_constants.push_back(_GlobalConstant(__constant_get_enum_name(m_constant, #m_constant), #m_constant, m_constant)); + +#define BIND_GLOBAL_ENUM_CONSTANT_CUSTOM(m_custom_name, m_constant) \ + _global_constants.push_back(_GlobalConstant(__constant_get_enum_name(m_constant, #m_constant), m_custom_name, m_constant)); + +#else + #define BIND_GLOBAL_CONSTANT(m_constant) \ - { #m_constant, m_constant } + _global_constants.push_back(_GlobalConstant(#m_constant, m_constant)); + +#define BIND_GLOBAL_ENUM_CONSTANT(m_constant) \ + _global_constants.push_back(_GlobalConstant(#m_constant, m_constant)); + +#define BIND_GLOBAL_ENUM_CONSTANT_CUSTOM(m_custom_name, m_constant) \ + _global_constants.push_back(_GlobalConstant(m_custom_name, m_constant)); + +#endif + +VARIANT_ENUM_CAST(KeyList); +VARIANT_ENUM_CAST(KeyModifierMask); -static _GlobalConstant _global_constants[] = { +void register_global_constants() { //{ KEY_BACKSPACE, VK_BACK },// (0x08) // backspace - BIND_GLOBAL_CONSTANT(MARGIN_LEFT), - BIND_GLOBAL_CONSTANT(MARGIN_TOP), - BIND_GLOBAL_CONSTANT(MARGIN_RIGHT), - BIND_GLOBAL_CONSTANT(MARGIN_BOTTOM), - BIND_GLOBAL_CONSTANT(VERTICAL), - BIND_GLOBAL_CONSTANT(HORIZONTAL), - BIND_GLOBAL_CONSTANT(HALIGN_LEFT), - BIND_GLOBAL_CONSTANT(HALIGN_CENTER), - BIND_GLOBAL_CONSTANT(HALIGN_RIGHT), - BIND_GLOBAL_CONSTANT(VALIGN_TOP), - BIND_GLOBAL_CONSTANT(VALIGN_CENTER), - BIND_GLOBAL_CONSTANT(VALIGN_BOTTOM), + BIND_GLOBAL_ENUM_CONSTANT(MARGIN_LEFT); + BIND_GLOBAL_ENUM_CONSTANT(MARGIN_TOP); + BIND_GLOBAL_ENUM_CONSTANT(MARGIN_RIGHT); + BIND_GLOBAL_ENUM_CONSTANT(MARGIN_BOTTOM); + + BIND_GLOBAL_ENUM_CONSTANT(VERTICAL); + BIND_GLOBAL_ENUM_CONSTANT(HORIZONTAL); + + BIND_GLOBAL_ENUM_CONSTANT(HALIGN_LEFT); + BIND_GLOBAL_ENUM_CONSTANT(HALIGN_CENTER); + BIND_GLOBAL_ENUM_CONSTANT(HALIGN_RIGHT); + + BIND_GLOBAL_ENUM_CONSTANT(VALIGN_TOP); + BIND_GLOBAL_ENUM_CONSTANT(VALIGN_CENTER); + BIND_GLOBAL_ENUM_CONSTANT(VALIGN_BOTTOM); // hueg list of keys - BIND_GLOBAL_CONSTANT(SPKEY), - - BIND_GLOBAL_CONSTANT(KEY_ESCAPE), - BIND_GLOBAL_CONSTANT(KEY_TAB), - BIND_GLOBAL_CONSTANT(KEY_BACKTAB), - BIND_GLOBAL_CONSTANT(KEY_BACKSPACE), - BIND_GLOBAL_CONSTANT(KEY_ENTER), - BIND_GLOBAL_CONSTANT(KEY_KP_ENTER), - BIND_GLOBAL_CONSTANT(KEY_INSERT), - BIND_GLOBAL_CONSTANT(KEY_DELETE), - BIND_GLOBAL_CONSTANT(KEY_PAUSE), - BIND_GLOBAL_CONSTANT(KEY_PRINT), - BIND_GLOBAL_CONSTANT(KEY_SYSREQ), - BIND_GLOBAL_CONSTANT(KEY_CLEAR), - BIND_GLOBAL_CONSTANT(KEY_HOME), - BIND_GLOBAL_CONSTANT(KEY_END), - BIND_GLOBAL_CONSTANT(KEY_LEFT), - BIND_GLOBAL_CONSTANT(KEY_UP), - BIND_GLOBAL_CONSTANT(KEY_RIGHT), - BIND_GLOBAL_CONSTANT(KEY_DOWN), - BIND_GLOBAL_CONSTANT(KEY_PAGEUP), - BIND_GLOBAL_CONSTANT(KEY_PAGEDOWN), - BIND_GLOBAL_CONSTANT(KEY_SHIFT), - BIND_GLOBAL_CONSTANT(KEY_CONTROL), - BIND_GLOBAL_CONSTANT(KEY_META), - BIND_GLOBAL_CONSTANT(KEY_ALT), - BIND_GLOBAL_CONSTANT(KEY_CAPSLOCK), - BIND_GLOBAL_CONSTANT(KEY_NUMLOCK), - BIND_GLOBAL_CONSTANT(KEY_SCROLLLOCK), - BIND_GLOBAL_CONSTANT(KEY_F1), - BIND_GLOBAL_CONSTANT(KEY_F2), - BIND_GLOBAL_CONSTANT(KEY_F3), - BIND_GLOBAL_CONSTANT(KEY_F4), - BIND_GLOBAL_CONSTANT(KEY_F5), - BIND_GLOBAL_CONSTANT(KEY_F6), - BIND_GLOBAL_CONSTANT(KEY_F7), - BIND_GLOBAL_CONSTANT(KEY_F8), - BIND_GLOBAL_CONSTANT(KEY_F9), - BIND_GLOBAL_CONSTANT(KEY_F10), - BIND_GLOBAL_CONSTANT(KEY_F11), - BIND_GLOBAL_CONSTANT(KEY_F12), - BIND_GLOBAL_CONSTANT(KEY_F13), - BIND_GLOBAL_CONSTANT(KEY_F14), - BIND_GLOBAL_CONSTANT(KEY_F15), - BIND_GLOBAL_CONSTANT(KEY_F16), - BIND_GLOBAL_CONSTANT(KEY_KP_MULTIPLY), - BIND_GLOBAL_CONSTANT(KEY_KP_DIVIDE), - BIND_GLOBAL_CONSTANT(KEY_KP_SUBTRACT), - BIND_GLOBAL_CONSTANT(KEY_KP_PERIOD), - BIND_GLOBAL_CONSTANT(KEY_KP_ADD), - BIND_GLOBAL_CONSTANT(KEY_KP_0), - BIND_GLOBAL_CONSTANT(KEY_KP_1), - BIND_GLOBAL_CONSTANT(KEY_KP_2), - BIND_GLOBAL_CONSTANT(KEY_KP_3), - BIND_GLOBAL_CONSTANT(KEY_KP_4), - BIND_GLOBAL_CONSTANT(KEY_KP_5), - BIND_GLOBAL_CONSTANT(KEY_KP_6), - BIND_GLOBAL_CONSTANT(KEY_KP_7), - BIND_GLOBAL_CONSTANT(KEY_KP_8), - BIND_GLOBAL_CONSTANT(KEY_KP_9), - BIND_GLOBAL_CONSTANT(KEY_SUPER_L), - BIND_GLOBAL_CONSTANT(KEY_SUPER_R), - BIND_GLOBAL_CONSTANT(KEY_MENU), - BIND_GLOBAL_CONSTANT(KEY_HYPER_L), - BIND_GLOBAL_CONSTANT(KEY_HYPER_R), - BIND_GLOBAL_CONSTANT(KEY_HELP), - BIND_GLOBAL_CONSTANT(KEY_DIRECTION_L), - BIND_GLOBAL_CONSTANT(KEY_DIRECTION_R), - BIND_GLOBAL_CONSTANT(KEY_BACK), - BIND_GLOBAL_CONSTANT(KEY_FORWARD), - BIND_GLOBAL_CONSTANT(KEY_STOP), - BIND_GLOBAL_CONSTANT(KEY_REFRESH), - BIND_GLOBAL_CONSTANT(KEY_VOLUMEDOWN), - BIND_GLOBAL_CONSTANT(KEY_VOLUMEMUTE), - BIND_GLOBAL_CONSTANT(KEY_VOLUMEUP), - BIND_GLOBAL_CONSTANT(KEY_BASSBOOST), - BIND_GLOBAL_CONSTANT(KEY_BASSUP), - BIND_GLOBAL_CONSTANT(KEY_BASSDOWN), - BIND_GLOBAL_CONSTANT(KEY_TREBLEUP), - BIND_GLOBAL_CONSTANT(KEY_TREBLEDOWN), - BIND_GLOBAL_CONSTANT(KEY_MEDIAPLAY), - BIND_GLOBAL_CONSTANT(KEY_MEDIASTOP), - BIND_GLOBAL_CONSTANT(KEY_MEDIAPREVIOUS), - BIND_GLOBAL_CONSTANT(KEY_MEDIANEXT), - BIND_GLOBAL_CONSTANT(KEY_MEDIARECORD), - BIND_GLOBAL_CONSTANT(KEY_HOMEPAGE), - BIND_GLOBAL_CONSTANT(KEY_FAVORITES), - BIND_GLOBAL_CONSTANT(KEY_SEARCH), - BIND_GLOBAL_CONSTANT(KEY_STANDBY), - BIND_GLOBAL_CONSTANT(KEY_OPENURL), - BIND_GLOBAL_CONSTANT(KEY_LAUNCHMAIL), - BIND_GLOBAL_CONSTANT(KEY_LAUNCHMEDIA), - BIND_GLOBAL_CONSTANT(KEY_LAUNCH0), - BIND_GLOBAL_CONSTANT(KEY_LAUNCH1), - BIND_GLOBAL_CONSTANT(KEY_LAUNCH2), - BIND_GLOBAL_CONSTANT(KEY_LAUNCH3), - BIND_GLOBAL_CONSTANT(KEY_LAUNCH4), - BIND_GLOBAL_CONSTANT(KEY_LAUNCH5), - BIND_GLOBAL_CONSTANT(KEY_LAUNCH6), - BIND_GLOBAL_CONSTANT(KEY_LAUNCH7), - BIND_GLOBAL_CONSTANT(KEY_LAUNCH8), - BIND_GLOBAL_CONSTANT(KEY_LAUNCH9), - BIND_GLOBAL_CONSTANT(KEY_LAUNCHA), - BIND_GLOBAL_CONSTANT(KEY_LAUNCHB), - BIND_GLOBAL_CONSTANT(KEY_LAUNCHC), - BIND_GLOBAL_CONSTANT(KEY_LAUNCHD), - BIND_GLOBAL_CONSTANT(KEY_LAUNCHE), - BIND_GLOBAL_CONSTANT(KEY_LAUNCHF), - - BIND_GLOBAL_CONSTANT(KEY_UNKNOWN), - BIND_GLOBAL_CONSTANT(KEY_SPACE), - BIND_GLOBAL_CONSTANT(KEY_EXCLAM), - BIND_GLOBAL_CONSTANT(KEY_QUOTEDBL), - BIND_GLOBAL_CONSTANT(KEY_NUMBERSIGN), - BIND_GLOBAL_CONSTANT(KEY_DOLLAR), - BIND_GLOBAL_CONSTANT(KEY_PERCENT), - BIND_GLOBAL_CONSTANT(KEY_AMPERSAND), - BIND_GLOBAL_CONSTANT(KEY_APOSTROPHE), - BIND_GLOBAL_CONSTANT(KEY_PARENLEFT), - BIND_GLOBAL_CONSTANT(KEY_PARENRIGHT), - BIND_GLOBAL_CONSTANT(KEY_ASTERISK), - BIND_GLOBAL_CONSTANT(KEY_PLUS), - BIND_GLOBAL_CONSTANT(KEY_COMMA), - BIND_GLOBAL_CONSTANT(KEY_MINUS), - BIND_GLOBAL_CONSTANT(KEY_PERIOD), - BIND_GLOBAL_CONSTANT(KEY_SLASH), - BIND_GLOBAL_CONSTANT(KEY_0), - BIND_GLOBAL_CONSTANT(KEY_1), - BIND_GLOBAL_CONSTANT(KEY_2), - BIND_GLOBAL_CONSTANT(KEY_3), - BIND_GLOBAL_CONSTANT(KEY_4), - BIND_GLOBAL_CONSTANT(KEY_5), - BIND_GLOBAL_CONSTANT(KEY_6), - BIND_GLOBAL_CONSTANT(KEY_7), - BIND_GLOBAL_CONSTANT(KEY_8), - BIND_GLOBAL_CONSTANT(KEY_9), - BIND_GLOBAL_CONSTANT(KEY_COLON), - BIND_GLOBAL_CONSTANT(KEY_SEMICOLON), - BIND_GLOBAL_CONSTANT(KEY_LESS), - BIND_GLOBAL_CONSTANT(KEY_EQUAL), - BIND_GLOBAL_CONSTANT(KEY_GREATER), - BIND_GLOBAL_CONSTANT(KEY_QUESTION), - BIND_GLOBAL_CONSTANT(KEY_AT), - BIND_GLOBAL_CONSTANT(KEY_A), - BIND_GLOBAL_CONSTANT(KEY_B), - BIND_GLOBAL_CONSTANT(KEY_C), - BIND_GLOBAL_CONSTANT(KEY_D), - BIND_GLOBAL_CONSTANT(KEY_E), - BIND_GLOBAL_CONSTANT(KEY_F), - BIND_GLOBAL_CONSTANT(KEY_G), - BIND_GLOBAL_CONSTANT(KEY_H), - BIND_GLOBAL_CONSTANT(KEY_I), - BIND_GLOBAL_CONSTANT(KEY_J), - BIND_GLOBAL_CONSTANT(KEY_K), - BIND_GLOBAL_CONSTANT(KEY_L), - BIND_GLOBAL_CONSTANT(KEY_M), - BIND_GLOBAL_CONSTANT(KEY_N), - BIND_GLOBAL_CONSTANT(KEY_O), - BIND_GLOBAL_CONSTANT(KEY_P), - BIND_GLOBAL_CONSTANT(KEY_Q), - BIND_GLOBAL_CONSTANT(KEY_R), - BIND_GLOBAL_CONSTANT(KEY_S), - BIND_GLOBAL_CONSTANT(KEY_T), - BIND_GLOBAL_CONSTANT(KEY_U), - BIND_GLOBAL_CONSTANT(KEY_V), - BIND_GLOBAL_CONSTANT(KEY_W), - BIND_GLOBAL_CONSTANT(KEY_X), - BIND_GLOBAL_CONSTANT(KEY_Y), - BIND_GLOBAL_CONSTANT(KEY_Z), - BIND_GLOBAL_CONSTANT(KEY_BRACKETLEFT), - BIND_GLOBAL_CONSTANT(KEY_BACKSLASH), - BIND_GLOBAL_CONSTANT(KEY_BRACKETRIGHT), - BIND_GLOBAL_CONSTANT(KEY_ASCIICIRCUM), - BIND_GLOBAL_CONSTANT(KEY_UNDERSCORE), - BIND_GLOBAL_CONSTANT(KEY_QUOTELEFT), - BIND_GLOBAL_CONSTANT(KEY_BRACELEFT), - BIND_GLOBAL_CONSTANT(KEY_BAR), - BIND_GLOBAL_CONSTANT(KEY_BRACERIGHT), - BIND_GLOBAL_CONSTANT(KEY_ASCIITILDE), - BIND_GLOBAL_CONSTANT(KEY_NOBREAKSPACE), - BIND_GLOBAL_CONSTANT(KEY_EXCLAMDOWN), - BIND_GLOBAL_CONSTANT(KEY_CENT), - BIND_GLOBAL_CONSTANT(KEY_STERLING), - BIND_GLOBAL_CONSTANT(KEY_CURRENCY), - BIND_GLOBAL_CONSTANT(KEY_YEN), - BIND_GLOBAL_CONSTANT(KEY_BROKENBAR), - BIND_GLOBAL_CONSTANT(KEY_SECTION), - BIND_GLOBAL_CONSTANT(KEY_DIAERESIS), - BIND_GLOBAL_CONSTANT(KEY_COPYRIGHT), - BIND_GLOBAL_CONSTANT(KEY_ORDFEMININE), - BIND_GLOBAL_CONSTANT(KEY_GUILLEMOTLEFT), - BIND_GLOBAL_CONSTANT(KEY_NOTSIGN), - BIND_GLOBAL_CONSTANT(KEY_HYPHEN), - BIND_GLOBAL_CONSTANT(KEY_REGISTERED), - BIND_GLOBAL_CONSTANT(KEY_MACRON), - BIND_GLOBAL_CONSTANT(KEY_DEGREE), - BIND_GLOBAL_CONSTANT(KEY_PLUSMINUS), - BIND_GLOBAL_CONSTANT(KEY_TWOSUPERIOR), - BIND_GLOBAL_CONSTANT(KEY_THREESUPERIOR), - BIND_GLOBAL_CONSTANT(KEY_ACUTE), - BIND_GLOBAL_CONSTANT(KEY_MU), - BIND_GLOBAL_CONSTANT(KEY_PARAGRAPH), - BIND_GLOBAL_CONSTANT(KEY_PERIODCENTERED), - BIND_GLOBAL_CONSTANT(KEY_CEDILLA), - BIND_GLOBAL_CONSTANT(KEY_ONESUPERIOR), - BIND_GLOBAL_CONSTANT(KEY_MASCULINE), - BIND_GLOBAL_CONSTANT(KEY_GUILLEMOTRIGHT), - BIND_GLOBAL_CONSTANT(KEY_ONEQUARTER), - BIND_GLOBAL_CONSTANT(KEY_ONEHALF), - BIND_GLOBAL_CONSTANT(KEY_THREEQUARTERS), - BIND_GLOBAL_CONSTANT(KEY_QUESTIONDOWN), - BIND_GLOBAL_CONSTANT(KEY_AGRAVE), - BIND_GLOBAL_CONSTANT(KEY_AACUTE), - BIND_GLOBAL_CONSTANT(KEY_ACIRCUMFLEX), - BIND_GLOBAL_CONSTANT(KEY_ATILDE), - BIND_GLOBAL_CONSTANT(KEY_ADIAERESIS), - BIND_GLOBAL_CONSTANT(KEY_ARING), - BIND_GLOBAL_CONSTANT(KEY_AE), - BIND_GLOBAL_CONSTANT(KEY_CCEDILLA), - BIND_GLOBAL_CONSTANT(KEY_EGRAVE), - BIND_GLOBAL_CONSTANT(KEY_EACUTE), - BIND_GLOBAL_CONSTANT(KEY_ECIRCUMFLEX), - BIND_GLOBAL_CONSTANT(KEY_EDIAERESIS), - BIND_GLOBAL_CONSTANT(KEY_IGRAVE), - BIND_GLOBAL_CONSTANT(KEY_IACUTE), - BIND_GLOBAL_CONSTANT(KEY_ICIRCUMFLEX), - BIND_GLOBAL_CONSTANT(KEY_IDIAERESIS), - BIND_GLOBAL_CONSTANT(KEY_ETH), - BIND_GLOBAL_CONSTANT(KEY_NTILDE), - BIND_GLOBAL_CONSTANT(KEY_OGRAVE), - BIND_GLOBAL_CONSTANT(KEY_OACUTE), - BIND_GLOBAL_CONSTANT(KEY_OCIRCUMFLEX), - BIND_GLOBAL_CONSTANT(KEY_OTILDE), - BIND_GLOBAL_CONSTANT(KEY_ODIAERESIS), - BIND_GLOBAL_CONSTANT(KEY_MULTIPLY), - BIND_GLOBAL_CONSTANT(KEY_OOBLIQUE), - BIND_GLOBAL_CONSTANT(KEY_UGRAVE), - BIND_GLOBAL_CONSTANT(KEY_UACUTE), - BIND_GLOBAL_CONSTANT(KEY_UCIRCUMFLEX), - BIND_GLOBAL_CONSTANT(KEY_UDIAERESIS), - BIND_GLOBAL_CONSTANT(KEY_YACUTE), - BIND_GLOBAL_CONSTANT(KEY_THORN), - BIND_GLOBAL_CONSTANT(KEY_SSHARP), - - BIND_GLOBAL_CONSTANT(KEY_DIVISION), - BIND_GLOBAL_CONSTANT(KEY_YDIAERESIS), - - BIND_GLOBAL_CONSTANT(KEY_CODE_MASK), - BIND_GLOBAL_CONSTANT(KEY_MODIFIER_MASK), - - BIND_GLOBAL_CONSTANT(KEY_MASK_SHIFT), - BIND_GLOBAL_CONSTANT(KEY_MASK_ALT), - BIND_GLOBAL_CONSTANT(KEY_MASK_META), - BIND_GLOBAL_CONSTANT(KEY_MASK_CTRL), - BIND_GLOBAL_CONSTANT(KEY_MASK_CMD), - BIND_GLOBAL_CONSTANT(KEY_MASK_KPAD), - BIND_GLOBAL_CONSTANT(KEY_MASK_GROUP_SWITCH), + BIND_GLOBAL_CONSTANT(SPKEY); + + BIND_GLOBAL_ENUM_CONSTANT(KEY_ESCAPE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_TAB); + BIND_GLOBAL_ENUM_CONSTANT(KEY_BACKTAB); + BIND_GLOBAL_ENUM_CONSTANT(KEY_BACKSPACE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ENTER); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_ENTER); + BIND_GLOBAL_ENUM_CONSTANT(KEY_INSERT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_DELETE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_PAUSE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_PRINT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_SYSREQ); + BIND_GLOBAL_ENUM_CONSTANT(KEY_CLEAR); + BIND_GLOBAL_ENUM_CONSTANT(KEY_HOME); + BIND_GLOBAL_ENUM_CONSTANT(KEY_END); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LEFT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_UP); + BIND_GLOBAL_ENUM_CONSTANT(KEY_RIGHT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_DOWN); + BIND_GLOBAL_ENUM_CONSTANT(KEY_PAGEUP); + BIND_GLOBAL_ENUM_CONSTANT(KEY_PAGEDOWN); + BIND_GLOBAL_ENUM_CONSTANT(KEY_SHIFT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_CONTROL); + BIND_GLOBAL_ENUM_CONSTANT(KEY_META); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ALT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_CAPSLOCK); + BIND_GLOBAL_ENUM_CONSTANT(KEY_NUMLOCK); + BIND_GLOBAL_ENUM_CONSTANT(KEY_SCROLLLOCK); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F1); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F2); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F3); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F4); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F5); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F6); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F7); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F8); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F9); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F10); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F11); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F12); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F13); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F14); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F15); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F16); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_MULTIPLY); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_DIVIDE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_SUBTRACT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_PERIOD); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_ADD); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_0); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_1); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_2); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_3); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_4); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_5); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_6); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_7); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_8); + BIND_GLOBAL_ENUM_CONSTANT(KEY_KP_9); + BIND_GLOBAL_ENUM_CONSTANT(KEY_SUPER_L); + BIND_GLOBAL_ENUM_CONSTANT(KEY_SUPER_R); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MENU); + BIND_GLOBAL_ENUM_CONSTANT(KEY_HYPER_L); + BIND_GLOBAL_ENUM_CONSTANT(KEY_HYPER_R); + BIND_GLOBAL_ENUM_CONSTANT(KEY_HELP); + BIND_GLOBAL_ENUM_CONSTANT(KEY_DIRECTION_L); + BIND_GLOBAL_ENUM_CONSTANT(KEY_DIRECTION_R); + BIND_GLOBAL_ENUM_CONSTANT(KEY_BACK); + BIND_GLOBAL_ENUM_CONSTANT(KEY_FORWARD); + BIND_GLOBAL_ENUM_CONSTANT(KEY_STOP); + BIND_GLOBAL_ENUM_CONSTANT(KEY_REFRESH); + BIND_GLOBAL_ENUM_CONSTANT(KEY_VOLUMEDOWN); + BIND_GLOBAL_ENUM_CONSTANT(KEY_VOLUMEMUTE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_VOLUMEUP); + BIND_GLOBAL_ENUM_CONSTANT(KEY_BASSBOOST); + BIND_GLOBAL_ENUM_CONSTANT(KEY_BASSUP); + BIND_GLOBAL_ENUM_CONSTANT(KEY_BASSDOWN); + BIND_GLOBAL_ENUM_CONSTANT(KEY_TREBLEUP); + BIND_GLOBAL_ENUM_CONSTANT(KEY_TREBLEDOWN); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MEDIAPLAY); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MEDIASTOP); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MEDIAPREVIOUS); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MEDIANEXT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MEDIARECORD); + BIND_GLOBAL_ENUM_CONSTANT(KEY_HOMEPAGE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_FAVORITES); + BIND_GLOBAL_ENUM_CONSTANT(KEY_SEARCH); + BIND_GLOBAL_ENUM_CONSTANT(KEY_STANDBY); + BIND_GLOBAL_ENUM_CONSTANT(KEY_OPENURL); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCHMAIL); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCHMEDIA); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCH0); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCH1); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCH2); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCH3); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCH4); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCH5); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCH6); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCH7); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCH8); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCH9); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCHA); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCHB); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCHC); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCHD); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCHE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LAUNCHF); + + BIND_GLOBAL_ENUM_CONSTANT(KEY_UNKNOWN); + BIND_GLOBAL_ENUM_CONSTANT(KEY_SPACE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_EXCLAM); + BIND_GLOBAL_ENUM_CONSTANT(KEY_QUOTEDBL); + BIND_GLOBAL_ENUM_CONSTANT(KEY_NUMBERSIGN); + BIND_GLOBAL_ENUM_CONSTANT(KEY_DOLLAR); + BIND_GLOBAL_ENUM_CONSTANT(KEY_PERCENT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_AMPERSAND); + BIND_GLOBAL_ENUM_CONSTANT(KEY_APOSTROPHE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_PARENLEFT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_PARENRIGHT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ASTERISK); + BIND_GLOBAL_ENUM_CONSTANT(KEY_PLUS); + BIND_GLOBAL_ENUM_CONSTANT(KEY_COMMA); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MINUS); + BIND_GLOBAL_ENUM_CONSTANT(KEY_PERIOD); + BIND_GLOBAL_ENUM_CONSTANT(KEY_SLASH); + BIND_GLOBAL_ENUM_CONSTANT(KEY_0); + BIND_GLOBAL_ENUM_CONSTANT(KEY_1); + BIND_GLOBAL_ENUM_CONSTANT(KEY_2); + BIND_GLOBAL_ENUM_CONSTANT(KEY_3); + BIND_GLOBAL_ENUM_CONSTANT(KEY_4); + BIND_GLOBAL_ENUM_CONSTANT(KEY_5); + BIND_GLOBAL_ENUM_CONSTANT(KEY_6); + BIND_GLOBAL_ENUM_CONSTANT(KEY_7); + BIND_GLOBAL_ENUM_CONSTANT(KEY_8); + BIND_GLOBAL_ENUM_CONSTANT(KEY_9); + BIND_GLOBAL_ENUM_CONSTANT(KEY_COLON); + BIND_GLOBAL_ENUM_CONSTANT(KEY_SEMICOLON); + BIND_GLOBAL_ENUM_CONSTANT(KEY_LESS); + BIND_GLOBAL_ENUM_CONSTANT(KEY_EQUAL); + BIND_GLOBAL_ENUM_CONSTANT(KEY_GREATER); + BIND_GLOBAL_ENUM_CONSTANT(KEY_QUESTION); + BIND_GLOBAL_ENUM_CONSTANT(KEY_AT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_A); + BIND_GLOBAL_ENUM_CONSTANT(KEY_B); + BIND_GLOBAL_ENUM_CONSTANT(KEY_C); + BIND_GLOBAL_ENUM_CONSTANT(KEY_D); + BIND_GLOBAL_ENUM_CONSTANT(KEY_E); + BIND_GLOBAL_ENUM_CONSTANT(KEY_F); + BIND_GLOBAL_ENUM_CONSTANT(KEY_G); + BIND_GLOBAL_ENUM_CONSTANT(KEY_H); + BIND_GLOBAL_ENUM_CONSTANT(KEY_I); + BIND_GLOBAL_ENUM_CONSTANT(KEY_J); + BIND_GLOBAL_ENUM_CONSTANT(KEY_K); + BIND_GLOBAL_ENUM_CONSTANT(KEY_L); + BIND_GLOBAL_ENUM_CONSTANT(KEY_M); + BIND_GLOBAL_ENUM_CONSTANT(KEY_N); + BIND_GLOBAL_ENUM_CONSTANT(KEY_O); + BIND_GLOBAL_ENUM_CONSTANT(KEY_P); + BIND_GLOBAL_ENUM_CONSTANT(KEY_Q); + BIND_GLOBAL_ENUM_CONSTANT(KEY_R); + BIND_GLOBAL_ENUM_CONSTANT(KEY_S); + BIND_GLOBAL_ENUM_CONSTANT(KEY_T); + BIND_GLOBAL_ENUM_CONSTANT(KEY_U); + BIND_GLOBAL_ENUM_CONSTANT(KEY_V); + BIND_GLOBAL_ENUM_CONSTANT(KEY_W); + BIND_GLOBAL_ENUM_CONSTANT(KEY_X); + BIND_GLOBAL_ENUM_CONSTANT(KEY_Y); + BIND_GLOBAL_ENUM_CONSTANT(KEY_Z); + BIND_GLOBAL_ENUM_CONSTANT(KEY_BRACKETLEFT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_BACKSLASH); + BIND_GLOBAL_ENUM_CONSTANT(KEY_BRACKETRIGHT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ASCIICIRCUM); + BIND_GLOBAL_ENUM_CONSTANT(KEY_UNDERSCORE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_QUOTELEFT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_BRACELEFT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_BAR); + BIND_GLOBAL_ENUM_CONSTANT(KEY_BRACERIGHT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ASCIITILDE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_NOBREAKSPACE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_EXCLAMDOWN); + BIND_GLOBAL_ENUM_CONSTANT(KEY_CENT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_STERLING); + BIND_GLOBAL_ENUM_CONSTANT(KEY_CURRENCY); + BIND_GLOBAL_ENUM_CONSTANT(KEY_YEN); + BIND_GLOBAL_ENUM_CONSTANT(KEY_BROKENBAR); + BIND_GLOBAL_ENUM_CONSTANT(KEY_SECTION); + BIND_GLOBAL_ENUM_CONSTANT(KEY_DIAERESIS); + BIND_GLOBAL_ENUM_CONSTANT(KEY_COPYRIGHT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ORDFEMININE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_GUILLEMOTLEFT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_NOTSIGN); + BIND_GLOBAL_ENUM_CONSTANT(KEY_HYPHEN); + BIND_GLOBAL_ENUM_CONSTANT(KEY_REGISTERED); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MACRON); + BIND_GLOBAL_ENUM_CONSTANT(KEY_DEGREE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_PLUSMINUS); + BIND_GLOBAL_ENUM_CONSTANT(KEY_TWOSUPERIOR); + BIND_GLOBAL_ENUM_CONSTANT(KEY_THREESUPERIOR); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ACUTE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MU); + BIND_GLOBAL_ENUM_CONSTANT(KEY_PARAGRAPH); + BIND_GLOBAL_ENUM_CONSTANT(KEY_PERIODCENTERED); + BIND_GLOBAL_ENUM_CONSTANT(KEY_CEDILLA); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ONESUPERIOR); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MASCULINE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_GUILLEMOTRIGHT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ONEQUARTER); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ONEHALF); + BIND_GLOBAL_ENUM_CONSTANT(KEY_THREEQUARTERS); + BIND_GLOBAL_ENUM_CONSTANT(KEY_QUESTIONDOWN); + BIND_GLOBAL_ENUM_CONSTANT(KEY_AGRAVE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_AACUTE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ACIRCUMFLEX); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ATILDE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ADIAERESIS); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ARING); + BIND_GLOBAL_ENUM_CONSTANT(KEY_AE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_CCEDILLA); + BIND_GLOBAL_ENUM_CONSTANT(KEY_EGRAVE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_EACUTE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ECIRCUMFLEX); + BIND_GLOBAL_ENUM_CONSTANT(KEY_EDIAERESIS); + BIND_GLOBAL_ENUM_CONSTANT(KEY_IGRAVE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_IACUTE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ICIRCUMFLEX); + BIND_GLOBAL_ENUM_CONSTANT(KEY_IDIAERESIS); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ETH); + BIND_GLOBAL_ENUM_CONSTANT(KEY_NTILDE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_OGRAVE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_OACUTE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_OCIRCUMFLEX); + BIND_GLOBAL_ENUM_CONSTANT(KEY_OTILDE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_ODIAERESIS); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MULTIPLY); + BIND_GLOBAL_ENUM_CONSTANT(KEY_OOBLIQUE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_UGRAVE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_UACUTE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_UCIRCUMFLEX); + BIND_GLOBAL_ENUM_CONSTANT(KEY_UDIAERESIS); + BIND_GLOBAL_ENUM_CONSTANT(KEY_YACUTE); + BIND_GLOBAL_ENUM_CONSTANT(KEY_THORN); + BIND_GLOBAL_ENUM_CONSTANT(KEY_SSHARP); + + BIND_GLOBAL_ENUM_CONSTANT(KEY_DIVISION); + BIND_GLOBAL_ENUM_CONSTANT(KEY_YDIAERESIS); + + BIND_GLOBAL_ENUM_CONSTANT(KEY_CODE_MASK); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MODIFIER_MASK); + + BIND_GLOBAL_ENUM_CONSTANT(KEY_MASK_SHIFT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MASK_ALT); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MASK_META); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MASK_CTRL); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MASK_CMD); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MASK_KPAD); + BIND_GLOBAL_ENUM_CONSTANT(KEY_MASK_GROUP_SWITCH); // mouse - BIND_GLOBAL_CONSTANT(BUTTON_LEFT), - BIND_GLOBAL_CONSTANT(BUTTON_RIGHT), - BIND_GLOBAL_CONSTANT(BUTTON_MIDDLE), - BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_UP), - BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_DOWN), - BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_LEFT), - BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_RIGHT), - BIND_GLOBAL_CONSTANT(BUTTON_MASK_LEFT), - BIND_GLOBAL_CONSTANT(BUTTON_MASK_RIGHT), - BIND_GLOBAL_CONSTANT(BUTTON_MASK_MIDDLE), + BIND_GLOBAL_CONSTANT(BUTTON_LEFT); + BIND_GLOBAL_CONSTANT(BUTTON_RIGHT); + BIND_GLOBAL_CONSTANT(BUTTON_MIDDLE); + BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_UP); + BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_DOWN); + BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_LEFT); + BIND_GLOBAL_CONSTANT(BUTTON_WHEEL_RIGHT); + BIND_GLOBAL_CONSTANT(BUTTON_MASK_LEFT); + BIND_GLOBAL_CONSTANT(BUTTON_MASK_RIGHT); + BIND_GLOBAL_CONSTANT(BUTTON_MASK_MIDDLE); //joypads - BIND_GLOBAL_CONSTANT(JOY_BUTTON_0), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_1), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_2), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_3), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_4), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_5), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_6), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_7), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_8), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_9), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_10), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_11), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_12), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_13), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_14), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_15), - BIND_GLOBAL_CONSTANT(JOY_BUTTON_MAX), - - BIND_GLOBAL_CONSTANT(JOY_SONY_CIRCLE), - BIND_GLOBAL_CONSTANT(JOY_SONY_X), - BIND_GLOBAL_CONSTANT(JOY_SONY_SQUARE), - BIND_GLOBAL_CONSTANT(JOY_SONY_TRIANGLE), - - BIND_GLOBAL_CONSTANT(JOY_XBOX_B), - BIND_GLOBAL_CONSTANT(JOY_XBOX_A), - BIND_GLOBAL_CONSTANT(JOY_XBOX_X), - BIND_GLOBAL_CONSTANT(JOY_XBOX_Y), - - BIND_GLOBAL_CONSTANT(JOY_DS_A), - BIND_GLOBAL_CONSTANT(JOY_DS_B), - BIND_GLOBAL_CONSTANT(JOY_DS_X), - BIND_GLOBAL_CONSTANT(JOY_DS_Y), - - BIND_GLOBAL_CONSTANT(JOY_SELECT), - BIND_GLOBAL_CONSTANT(JOY_START), - BIND_GLOBAL_CONSTANT(JOY_DPAD_UP), - BIND_GLOBAL_CONSTANT(JOY_DPAD_DOWN), - BIND_GLOBAL_CONSTANT(JOY_DPAD_LEFT), - BIND_GLOBAL_CONSTANT(JOY_DPAD_RIGHT), - BIND_GLOBAL_CONSTANT(JOY_L), - BIND_GLOBAL_CONSTANT(JOY_L2), - BIND_GLOBAL_CONSTANT(JOY_L3), - BIND_GLOBAL_CONSTANT(JOY_R), - BIND_GLOBAL_CONSTANT(JOY_R2), - BIND_GLOBAL_CONSTANT(JOY_R3), - - BIND_GLOBAL_CONSTANT(JOY_AXIS_0), - BIND_GLOBAL_CONSTANT(JOY_AXIS_1), - BIND_GLOBAL_CONSTANT(JOY_AXIS_2), - BIND_GLOBAL_CONSTANT(JOY_AXIS_3), - BIND_GLOBAL_CONSTANT(JOY_AXIS_4), - BIND_GLOBAL_CONSTANT(JOY_AXIS_5), - BIND_GLOBAL_CONSTANT(JOY_AXIS_6), - BIND_GLOBAL_CONSTANT(JOY_AXIS_7), - BIND_GLOBAL_CONSTANT(JOY_AXIS_MAX), - - BIND_GLOBAL_CONSTANT(JOY_ANALOG_LX), - BIND_GLOBAL_CONSTANT(JOY_ANALOG_LY), - - BIND_GLOBAL_CONSTANT(JOY_ANALOG_RX), - BIND_GLOBAL_CONSTANT(JOY_ANALOG_RY), - - BIND_GLOBAL_CONSTANT(JOY_ANALOG_L2), - BIND_GLOBAL_CONSTANT(JOY_ANALOG_R2), + BIND_GLOBAL_CONSTANT(JOY_BUTTON_0); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_1); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_2); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_3); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_4); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_5); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_6); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_7); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_8); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_9); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_10); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_11); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_12); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_13); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_14); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_15); + BIND_GLOBAL_CONSTANT(JOY_BUTTON_MAX); + + BIND_GLOBAL_CONSTANT(JOY_SONY_CIRCLE); + BIND_GLOBAL_CONSTANT(JOY_SONY_X); + BIND_GLOBAL_CONSTANT(JOY_SONY_SQUARE); + BIND_GLOBAL_CONSTANT(JOY_SONY_TRIANGLE); + + BIND_GLOBAL_CONSTANT(JOY_XBOX_B); + BIND_GLOBAL_CONSTANT(JOY_XBOX_A); + BIND_GLOBAL_CONSTANT(JOY_XBOX_X); + BIND_GLOBAL_CONSTANT(JOY_XBOX_Y); + + BIND_GLOBAL_CONSTANT(JOY_DS_A); + BIND_GLOBAL_CONSTANT(JOY_DS_B); + BIND_GLOBAL_CONSTANT(JOY_DS_X); + BIND_GLOBAL_CONSTANT(JOY_DS_Y); + + BIND_GLOBAL_CONSTANT(JOY_SELECT); + BIND_GLOBAL_CONSTANT(JOY_START); + BIND_GLOBAL_CONSTANT(JOY_DPAD_UP); + BIND_GLOBAL_CONSTANT(JOY_DPAD_DOWN); + BIND_GLOBAL_CONSTANT(JOY_DPAD_LEFT); + BIND_GLOBAL_CONSTANT(JOY_DPAD_RIGHT); + BIND_GLOBAL_CONSTANT(JOY_L); + BIND_GLOBAL_CONSTANT(JOY_L2); + BIND_GLOBAL_CONSTANT(JOY_L3); + BIND_GLOBAL_CONSTANT(JOY_R); + BIND_GLOBAL_CONSTANT(JOY_R2); + BIND_GLOBAL_CONSTANT(JOY_R3); + + BIND_GLOBAL_CONSTANT(JOY_AXIS_0); + BIND_GLOBAL_CONSTANT(JOY_AXIS_1); + BIND_GLOBAL_CONSTANT(JOY_AXIS_2); + BIND_GLOBAL_CONSTANT(JOY_AXIS_3); + BIND_GLOBAL_CONSTANT(JOY_AXIS_4); + BIND_GLOBAL_CONSTANT(JOY_AXIS_5); + BIND_GLOBAL_CONSTANT(JOY_AXIS_6); + BIND_GLOBAL_CONSTANT(JOY_AXIS_7); + BIND_GLOBAL_CONSTANT(JOY_AXIS_MAX); + + BIND_GLOBAL_CONSTANT(JOY_ANALOG_LX); + BIND_GLOBAL_CONSTANT(JOY_ANALOG_LY); + + BIND_GLOBAL_CONSTANT(JOY_ANALOG_RX); + BIND_GLOBAL_CONSTANT(JOY_ANALOG_RY); + + BIND_GLOBAL_CONSTANT(JOY_ANALOG_L2); + BIND_GLOBAL_CONSTANT(JOY_ANALOG_R2); // error list - BIND_GLOBAL_CONSTANT(OK), - BIND_GLOBAL_CONSTANT(FAILED), ///< Generic fail error - BIND_GLOBAL_CONSTANT(ERR_UNAVAILABLE), ///< What is requested is unsupported/unavailable - BIND_GLOBAL_CONSTANT(ERR_UNCONFIGURED), ///< The object being used hasn't been properly set up yet - BIND_GLOBAL_CONSTANT(ERR_UNAUTHORIZED), ///< Missing credentials for requested resource - BIND_GLOBAL_CONSTANT(ERR_PARAMETER_RANGE_ERROR), ///< Parameter given out of range - BIND_GLOBAL_CONSTANT(ERR_OUT_OF_MEMORY), ///< Out of memory - BIND_GLOBAL_CONSTANT(ERR_FILE_NOT_FOUND), - BIND_GLOBAL_CONSTANT(ERR_FILE_BAD_DRIVE), - BIND_GLOBAL_CONSTANT(ERR_FILE_BAD_PATH), - BIND_GLOBAL_CONSTANT(ERR_FILE_NO_PERMISSION), - BIND_GLOBAL_CONSTANT(ERR_FILE_ALREADY_IN_USE), - BIND_GLOBAL_CONSTANT(ERR_FILE_CANT_OPEN), - BIND_GLOBAL_CONSTANT(ERR_FILE_CANT_WRITE), - BIND_GLOBAL_CONSTANT(ERR_FILE_CANT_READ), - BIND_GLOBAL_CONSTANT(ERR_FILE_UNRECOGNIZED), - BIND_GLOBAL_CONSTANT(ERR_FILE_CORRUPT), - BIND_GLOBAL_CONSTANT(ERR_FILE_MISSING_DEPENDENCIES), - BIND_GLOBAL_CONSTANT(ERR_FILE_EOF), - BIND_GLOBAL_CONSTANT(ERR_CANT_OPEN), ///< Can't open a resource/socket/file - BIND_GLOBAL_CONSTANT(ERR_CANT_CREATE), - BIND_GLOBAL_CONSTANT(ERR_PARSE_ERROR), - BIND_GLOBAL_CONSTANT(ERR_QUERY_FAILED), - BIND_GLOBAL_CONSTANT(ERR_ALREADY_IN_USE), - BIND_GLOBAL_CONSTANT(ERR_LOCKED), ///< resource is locked - BIND_GLOBAL_CONSTANT(ERR_TIMEOUT), - BIND_GLOBAL_CONSTANT(ERR_CANT_AQUIRE_RESOURCE), - BIND_GLOBAL_CONSTANT(ERR_INVALID_DATA), ///< Data passed is invalid - BIND_GLOBAL_CONSTANT(ERR_INVALID_PARAMETER), ///< Parameter passed is invalid - BIND_GLOBAL_CONSTANT(ERR_ALREADY_EXISTS), ///< When adding ), item already exists - BIND_GLOBAL_CONSTANT(ERR_DOES_NOT_EXIST), ///< When retrieving/erasing ), it item does not exist - BIND_GLOBAL_CONSTANT(ERR_DATABASE_CANT_READ), ///< database is full - BIND_GLOBAL_CONSTANT(ERR_DATABASE_CANT_WRITE), ///< database is full - BIND_GLOBAL_CONSTANT(ERR_COMPILATION_FAILED), - BIND_GLOBAL_CONSTANT(ERR_METHOD_NOT_FOUND), - BIND_GLOBAL_CONSTANT(ERR_LINK_FAILED), - BIND_GLOBAL_CONSTANT(ERR_SCRIPT_FAILED), - BIND_GLOBAL_CONSTANT(ERR_CYCLIC_LINK), - BIND_GLOBAL_CONSTANT(ERR_BUSY), - BIND_GLOBAL_CONSTANT(ERR_HELP), ///< user requested help!! - BIND_GLOBAL_CONSTANT(ERR_BUG), ///< a bug in the software certainly happened ), due to a double check failing or unexpected behavior. - BIND_GLOBAL_CONSTANT(ERR_WTF), - - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_NONE), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_RANGE), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_EXP_RANGE), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_ENUM), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_EXP_EASING), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_LENGTH), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_KEY_ACCEL), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_FLAGS), - - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_LAYERS_2D_RENDER), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_LAYERS_2D_PHYSICS), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_LAYERS_3D_RENDER), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_LAYERS_3D_PHYSICS), - - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_FILE), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_DIR), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_GLOBAL_FILE), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_GLOBAL_DIR), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_RESOURCE_TYPE), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_MULTILINE_TEXT), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_COLOR_NO_ALPHA), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_IMAGE_COMPRESS_LOSSY), - BIND_GLOBAL_CONSTANT(PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS), - - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_STORAGE), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_EDITOR), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_NETWORK), - - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_EDITOR_HELPER), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_CHECKABLE), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_CHECKED), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_INTERNATIONALIZED), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_GROUP), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_CATEGORY), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_STORE_IF_NONZERO), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_STORE_IF_NONONE), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_NO_INSTANCE_STATE), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_RESTART_IF_CHANGED), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_SCRIPT_VARIABLE), - - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_DEFAULT), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_DEFAULT_INTL), - BIND_GLOBAL_CONSTANT(PROPERTY_USAGE_NOEDITOR), - - BIND_GLOBAL_CONSTANT(METHOD_FLAG_NORMAL), - BIND_GLOBAL_CONSTANT(METHOD_FLAG_EDITOR), - BIND_GLOBAL_CONSTANT(METHOD_FLAG_NOSCRIPT), - BIND_GLOBAL_CONSTANT(METHOD_FLAG_CONST), - BIND_GLOBAL_CONSTANT(METHOD_FLAG_REVERSE), - BIND_GLOBAL_CONSTANT(METHOD_FLAG_VIRTUAL), - BIND_GLOBAL_CONSTANT(METHOD_FLAG_FROM_SCRIPT), - BIND_GLOBAL_CONSTANT(METHOD_FLAGS_DEFAULT), - - { "TYPE_NIL", Variant::NIL }, - { "TYPE_BOOL", Variant::BOOL }, - { "TYPE_INT", Variant::INT }, - { "TYPE_REAL", Variant::REAL }, - { "TYPE_STRING", Variant::STRING }, - { "TYPE_VECTOR2", Variant::VECTOR2 }, // 5 - { "TYPE_RECT2", Variant::RECT2 }, - { "TYPE_VECTOR3", Variant::VECTOR3 }, - { "TYPE_TRANSFORM2D", Variant::TRANSFORM2D }, - { "TYPE_PLANE", Variant::PLANE }, - { "TYPE_QUAT", Variant::QUAT }, // 10 - { "TYPE_RECT3", Variant::RECT3 }, - { "TYPE_BASIS", Variant::BASIS }, - { "TYPE_TRANSFORM", Variant::TRANSFORM }, - { "TYPE_COLOR", Variant::COLOR }, - { "TYPE_NODE_PATH", Variant::NODE_PATH }, // 15 - { "TYPE_RID", Variant::_RID }, - { "TYPE_OBJECT", Variant::OBJECT }, - { "TYPE_DICTIONARY", Variant::DICTIONARY }, // 20 - { "TYPE_ARRAY", Variant::ARRAY }, - { "TYPE_RAW_ARRAY", Variant::POOL_BYTE_ARRAY }, - { "TYPE_INT_ARRAY", Variant::POOL_INT_ARRAY }, - { "TYPE_REAL_ARRAY", Variant::POOL_REAL_ARRAY }, - { "TYPE_STRING_ARRAY", Variant::POOL_STRING_ARRAY }, - { "TYPE_VECTOR2_ARRAY", Variant::POOL_VECTOR2_ARRAY }, // 25 - { "TYPE_VECTOR3_ARRAY", Variant::POOL_VECTOR3_ARRAY }, - { "TYPE_COLOR_ARRAY", Variant::POOL_COLOR_ARRAY }, - { "TYPE_MAX", Variant::VARIANT_MAX }, - { NULL, 0 } + BIND_GLOBAL_ENUM_CONSTANT(OK); + BIND_GLOBAL_ENUM_CONSTANT(FAILED); ///< Generic fail error + BIND_GLOBAL_ENUM_CONSTANT(ERR_UNAVAILABLE); ///< What is requested is unsupported/unavailable + BIND_GLOBAL_ENUM_CONSTANT(ERR_UNCONFIGURED); ///< The object being used hasn't been properly set up yet + BIND_GLOBAL_ENUM_CONSTANT(ERR_UNAUTHORIZED); ///< Missing credentials for requested resource + BIND_GLOBAL_ENUM_CONSTANT(ERR_PARAMETER_RANGE_ERROR); ///< Parameter given out of range + BIND_GLOBAL_ENUM_CONSTANT(ERR_OUT_OF_MEMORY); ///< Out of memory + BIND_GLOBAL_ENUM_CONSTANT(ERR_FILE_NOT_FOUND); + BIND_GLOBAL_ENUM_CONSTANT(ERR_FILE_BAD_DRIVE); + BIND_GLOBAL_ENUM_CONSTANT(ERR_FILE_BAD_PATH); + BIND_GLOBAL_ENUM_CONSTANT(ERR_FILE_NO_PERMISSION); + BIND_GLOBAL_ENUM_CONSTANT(ERR_FILE_ALREADY_IN_USE); + BIND_GLOBAL_ENUM_CONSTANT(ERR_FILE_CANT_OPEN); + BIND_GLOBAL_ENUM_CONSTANT(ERR_FILE_CANT_WRITE); + BIND_GLOBAL_ENUM_CONSTANT(ERR_FILE_CANT_READ); + BIND_GLOBAL_ENUM_CONSTANT(ERR_FILE_UNRECOGNIZED); + BIND_GLOBAL_ENUM_CONSTANT(ERR_FILE_CORRUPT); + BIND_GLOBAL_ENUM_CONSTANT(ERR_FILE_MISSING_DEPENDENCIES); + BIND_GLOBAL_ENUM_CONSTANT(ERR_FILE_EOF); + BIND_GLOBAL_ENUM_CONSTANT(ERR_CANT_OPEN); ///< Can't open a resource/socket/file + BIND_GLOBAL_ENUM_CONSTANT(ERR_CANT_CREATE); + BIND_GLOBAL_ENUM_CONSTANT(ERR_PARSE_ERROR); + BIND_GLOBAL_ENUM_CONSTANT(ERR_QUERY_FAILED); + BIND_GLOBAL_ENUM_CONSTANT(ERR_ALREADY_IN_USE); + BIND_GLOBAL_ENUM_CONSTANT(ERR_LOCKED); ///< resource is locked + BIND_GLOBAL_ENUM_CONSTANT(ERR_TIMEOUT); + BIND_GLOBAL_ENUM_CONSTANT(ERR_CANT_AQUIRE_RESOURCE); + BIND_GLOBAL_ENUM_CONSTANT(ERR_INVALID_DATA); ///< Data passed is invalid + BIND_GLOBAL_ENUM_CONSTANT(ERR_INVALID_PARAMETER); ///< Parameter passed is invalid + BIND_GLOBAL_ENUM_CONSTANT(ERR_ALREADY_EXISTS); ///< When adding ), item already exists + BIND_GLOBAL_ENUM_CONSTANT(ERR_DOES_NOT_EXIST); ///< When retrieving/erasing ), it item does not exist + BIND_GLOBAL_ENUM_CONSTANT(ERR_DATABASE_CANT_READ); ///< database is full + BIND_GLOBAL_ENUM_CONSTANT(ERR_DATABASE_CANT_WRITE); ///< database is full + BIND_GLOBAL_ENUM_CONSTANT(ERR_COMPILATION_FAILED); + BIND_GLOBAL_ENUM_CONSTANT(ERR_METHOD_NOT_FOUND); + BIND_GLOBAL_ENUM_CONSTANT(ERR_LINK_FAILED); + BIND_GLOBAL_ENUM_CONSTANT(ERR_SCRIPT_FAILED); + BIND_GLOBAL_ENUM_CONSTANT(ERR_CYCLIC_LINK); + BIND_GLOBAL_ENUM_CONSTANT(ERR_BUSY); + BIND_GLOBAL_ENUM_CONSTANT(ERR_HELP); ///< user requested help!! + BIND_GLOBAL_ENUM_CONSTANT(ERR_BUG); ///< a bug in the software certainly happened ), due to a double check failing or unexpected behavior. + BIND_GLOBAL_ENUM_CONSTANT(ERR_WTF); + + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_NONE); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_RANGE); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_EXP_RANGE); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_ENUM); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_EXP_EASING); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_LENGTH); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_KEY_ACCEL); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_FLAGS); + + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_2D_RENDER); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_2D_PHYSICS); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_3D_RENDER); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_LAYERS_3D_PHYSICS); + + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_FILE); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_DIR); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_GLOBAL_FILE); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_GLOBAL_DIR); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_RESOURCE_TYPE); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_MULTILINE_TEXT); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_COLOR_NO_ALPHA); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_IMAGE_COMPRESS_LOSSY); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS); + + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_STORAGE); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_EDITOR); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_NETWORK); + + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_EDITOR_HELPER); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_CHECKABLE); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_CHECKED); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_INTERNATIONALIZED); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_GROUP); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_CATEGORY); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_STORE_IF_NONZERO); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_STORE_IF_NONONE); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_NO_INSTANCE_STATE); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_RESTART_IF_CHANGED); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_SCRIPT_VARIABLE); + + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_DEFAULT); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_DEFAULT_INTL); + BIND_GLOBAL_ENUM_CONSTANT(PROPERTY_USAGE_NOEDITOR); + + BIND_GLOBAL_ENUM_CONSTANT(METHOD_FLAG_NORMAL); + BIND_GLOBAL_ENUM_CONSTANT(METHOD_FLAG_EDITOR); + BIND_GLOBAL_ENUM_CONSTANT(METHOD_FLAG_NOSCRIPT); + BIND_GLOBAL_ENUM_CONSTANT(METHOD_FLAG_CONST); + BIND_GLOBAL_ENUM_CONSTANT(METHOD_FLAG_REVERSE); + BIND_GLOBAL_ENUM_CONSTANT(METHOD_FLAG_VIRTUAL); + BIND_GLOBAL_ENUM_CONSTANT(METHOD_FLAG_FROM_SCRIPT); + BIND_GLOBAL_ENUM_CONSTANT(METHOD_FLAGS_DEFAULT); + + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_NIL", Variant::NIL); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_BOOL", Variant::BOOL); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_INT", Variant::INT); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_REAL", Variant::REAL); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_STRING", Variant::STRING); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR2", Variant::VECTOR2); // 5 + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_RECT2", Variant::RECT2); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR3", Variant::VECTOR3); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_TRANSFORM2D", Variant::TRANSFORM2D); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_PLANE", Variant::PLANE); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_QUAT", Variant::QUAT); // 10 + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_RECT3", Variant::RECT3); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_BASIS", Variant::BASIS); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_TRANSFORM", Variant::TRANSFORM); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_COLOR", Variant::COLOR); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_NODE_PATH", Variant::NODE_PATH); // 15 + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_RID", Variant::_RID); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_OBJECT", Variant::OBJECT); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_DICTIONARY", Variant::DICTIONARY); // 20 + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_ARRAY", Variant::ARRAY); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_RAW_ARRAY", Variant::POOL_BYTE_ARRAY); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_INT_ARRAY", Variant::POOL_INT_ARRAY); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_REAL_ARRAY", Variant::POOL_REAL_ARRAY); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_STRING_ARRAY", Variant::POOL_STRING_ARRAY); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR2_ARRAY", Variant::POOL_VECTOR2_ARRAY); // 25 + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR3_ARRAY", Variant::POOL_VECTOR3_ARRAY); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_COLOR_ARRAY", Variant::POOL_COLOR_ARRAY); + BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_MAX", Variant::VARIANT_MAX); +} -}; +void unregister_global_constants() { + + _global_constants.clear(); +} int GlobalConstants::get_global_constant_count() { - int i = 0; - while (_global_constants[i].name) - i++; - return i; + return _global_constants.size(); +} + +#ifdef DEBUG_METHODS_ENABLED +StringName GlobalConstants::get_global_constant_enum(int p_idx) { + + return _global_constants[p_idx].enum_name; +} +#else +StringName GlobalConstants::get_global_constant_enum(int p_idx) { + + return StringName(); } +#endif const char *GlobalConstants::get_global_constant_name(int p_idx) { diff --git a/core/global_constants.h b/core/global_constants.h index f298fc31c7..ad639d0afa 100644 --- a/core/global_constants.h +++ b/core/global_constants.h @@ -30,9 +30,12 @@ #ifndef GLOBAL_CONSTANTS_H #define GLOBAL_CONSTANTS_H +#include "string_db.h" + class GlobalConstants { public: static int get_global_constant_count(); + static StringName get_global_constant_enum(int p_idx); static const char *get_global_constant_name(int p_idx); static int get_global_constant_value(int p_idx); }; diff --git a/core/image.cpp b/core/image.cpp index a4864458b5..91572e44e4 100644 --- a/core/image.cpp +++ b/core/image.cpp @@ -2275,62 +2275,62 @@ void Image::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "_set_data", "_get_data"); - BIND_CONSTANT(FORMAT_L8); //luminance - BIND_CONSTANT(FORMAT_LA8); //luminance-alpha - BIND_CONSTANT(FORMAT_R8); - BIND_CONSTANT(FORMAT_RG8); - BIND_CONSTANT(FORMAT_RGB8); - BIND_CONSTANT(FORMAT_RGBA8); - BIND_CONSTANT(FORMAT_RGBA4444); - BIND_CONSTANT(FORMAT_RGBA5551); - BIND_CONSTANT(FORMAT_RF); //float - BIND_CONSTANT(FORMAT_RGF); - BIND_CONSTANT(FORMAT_RGBF); - BIND_CONSTANT(FORMAT_RGBAF); - BIND_CONSTANT(FORMAT_RH); //half float - BIND_CONSTANT(FORMAT_RGH); - BIND_CONSTANT(FORMAT_RGBH); - BIND_CONSTANT(FORMAT_RGBAH); - BIND_CONSTANT(FORMAT_RGBE9995); - BIND_CONSTANT(FORMAT_DXT1); //s3tc bc1 - BIND_CONSTANT(FORMAT_DXT3); //bc2 - BIND_CONSTANT(FORMAT_DXT5); //bc3 - BIND_CONSTANT(FORMAT_RGTC_R); - BIND_CONSTANT(FORMAT_RGTC_RG); - BIND_CONSTANT(FORMAT_BPTC_RGBA); //btpc bc6h - BIND_CONSTANT(FORMAT_BPTC_RGBF); //float / - BIND_CONSTANT(FORMAT_BPTC_RGBFU); //unsigned float - BIND_CONSTANT(FORMAT_PVRTC2); //pvrtc - BIND_CONSTANT(FORMAT_PVRTC2A); - BIND_CONSTANT(FORMAT_PVRTC4); - BIND_CONSTANT(FORMAT_PVRTC4A); - BIND_CONSTANT(FORMAT_ETC); //etc1 - BIND_CONSTANT(FORMAT_ETC2_R11); //etc2 - BIND_CONSTANT(FORMAT_ETC2_R11S); //signed ); NOT srgb. - BIND_CONSTANT(FORMAT_ETC2_RG11); - BIND_CONSTANT(FORMAT_ETC2_RG11S); - BIND_CONSTANT(FORMAT_ETC2_RGB8); - BIND_CONSTANT(FORMAT_ETC2_RGBA8); - BIND_CONSTANT(FORMAT_ETC2_RGB8A1); - BIND_CONSTANT(FORMAT_MAX); - - BIND_CONSTANT(INTERPOLATE_NEAREST); - BIND_CONSTANT(INTERPOLATE_BILINEAR); - BIND_CONSTANT(INTERPOLATE_CUBIC); - - BIND_CONSTANT(ALPHA_NONE); - BIND_CONSTANT(ALPHA_BIT); - BIND_CONSTANT(ALPHA_BLEND); - - BIND_CONSTANT(COMPRESS_S3TC); - BIND_CONSTANT(COMPRESS_PVRTC2); - BIND_CONSTANT(COMPRESS_PVRTC4); - BIND_CONSTANT(COMPRESS_ETC); - BIND_CONSTANT(COMPRESS_ETC2); - - BIND_CONSTANT(COMPRESS_SOURCE_GENERIC); - BIND_CONSTANT(COMPRESS_SOURCE_SRGB); - BIND_CONSTANT(COMPRESS_SOURCE_NORMAL); + BIND_ENUM_CONSTANT(FORMAT_L8); //luminance + BIND_ENUM_CONSTANT(FORMAT_LA8); //luminance-alpha + BIND_ENUM_CONSTANT(FORMAT_R8); + BIND_ENUM_CONSTANT(FORMAT_RG8); + BIND_ENUM_CONSTANT(FORMAT_RGB8); + BIND_ENUM_CONSTANT(FORMAT_RGBA8); + BIND_ENUM_CONSTANT(FORMAT_RGBA4444); + BIND_ENUM_CONSTANT(FORMAT_RGBA5551); + BIND_ENUM_CONSTANT(FORMAT_RF); //float + BIND_ENUM_CONSTANT(FORMAT_RGF); + BIND_ENUM_CONSTANT(FORMAT_RGBF); + BIND_ENUM_CONSTANT(FORMAT_RGBAF); + BIND_ENUM_CONSTANT(FORMAT_RH); //half float + BIND_ENUM_CONSTANT(FORMAT_RGH); + BIND_ENUM_CONSTANT(FORMAT_RGBH); + BIND_ENUM_CONSTANT(FORMAT_RGBAH); + BIND_ENUM_CONSTANT(FORMAT_RGBE9995); + BIND_ENUM_CONSTANT(FORMAT_DXT1); //s3tc bc1 + BIND_ENUM_CONSTANT(FORMAT_DXT3); //bc2 + BIND_ENUM_CONSTANT(FORMAT_DXT5); //bc3 + BIND_ENUM_CONSTANT(FORMAT_RGTC_R); + BIND_ENUM_CONSTANT(FORMAT_RGTC_RG); + BIND_ENUM_CONSTANT(FORMAT_BPTC_RGBA); //btpc bc6h + BIND_ENUM_CONSTANT(FORMAT_BPTC_RGBF); //float / + BIND_ENUM_CONSTANT(FORMAT_BPTC_RGBFU); //unsigned float + BIND_ENUM_CONSTANT(FORMAT_PVRTC2); //pvrtc + BIND_ENUM_CONSTANT(FORMAT_PVRTC2A); + BIND_ENUM_CONSTANT(FORMAT_PVRTC4); + BIND_ENUM_CONSTANT(FORMAT_PVRTC4A); + BIND_ENUM_CONSTANT(FORMAT_ETC); //etc1 + BIND_ENUM_CONSTANT(FORMAT_ETC2_R11); //etc2 + BIND_ENUM_CONSTANT(FORMAT_ETC2_R11S); //signed ); NOT srgb. + BIND_ENUM_CONSTANT(FORMAT_ETC2_RG11); + BIND_ENUM_CONSTANT(FORMAT_ETC2_RG11S); + BIND_ENUM_CONSTANT(FORMAT_ETC2_RGB8); + BIND_ENUM_CONSTANT(FORMAT_ETC2_RGBA8); + BIND_ENUM_CONSTANT(FORMAT_ETC2_RGB8A1); + BIND_ENUM_CONSTANT(FORMAT_MAX); + + BIND_ENUM_CONSTANT(INTERPOLATE_NEAREST); + BIND_ENUM_CONSTANT(INTERPOLATE_BILINEAR); + BIND_ENUM_CONSTANT(INTERPOLATE_CUBIC); + + BIND_ENUM_CONSTANT(ALPHA_NONE); + BIND_ENUM_CONSTANT(ALPHA_BIT); + BIND_ENUM_CONSTANT(ALPHA_BLEND); + + BIND_ENUM_CONSTANT(COMPRESS_S3TC); + BIND_ENUM_CONSTANT(COMPRESS_PVRTC2); + BIND_ENUM_CONSTANT(COMPRESS_PVRTC4); + BIND_ENUM_CONSTANT(COMPRESS_ETC); + BIND_ENUM_CONSTANT(COMPRESS_ETC2); + + BIND_ENUM_CONSTANT(COMPRESS_SOURCE_GENERIC); + BIND_ENUM_CONSTANT(COMPRESS_SOURCE_SRGB); + BIND_ENUM_CONSTANT(COMPRESS_SOURCE_NORMAL); } void Image::set_compress_bc_func(void (*p_compress_func)(Image *, CompressSource)) { diff --git a/core/io/file_access_compressed.cpp b/core/io/file_access_compressed.cpp index 34bce3f04f..959a5dc86f 100644 --- a/core/io/file_access_compressed.cpp +++ b/core/io/file_access_compressed.cpp @@ -368,7 +368,6 @@ FileAccessCompressed::FileAccessCompressed() { f = NULL; magic = "GCMP"; - block_size = 16384; cmode = Compression::MODE_ZSTD; writing = false; write_ptr = 0; diff --git a/core/io/http_client.cpp b/core/io/http_client.cpp index 4d5b88cfa1..1c35c6edeb 100644 --- a/core/io/http_client.cpp +++ b/core/io/http_client.cpp @@ -650,84 +650,84 @@ void HTTPClient::_bind_methods() { ClassDB::bind_method(D_METHOD("query_string_from_dict", "fields"), &HTTPClient::query_string_from_dict); - BIND_CONSTANT(METHOD_GET); - BIND_CONSTANT(METHOD_HEAD); - BIND_CONSTANT(METHOD_POST); - BIND_CONSTANT(METHOD_PUT); - BIND_CONSTANT(METHOD_DELETE); - BIND_CONSTANT(METHOD_OPTIONS); - BIND_CONSTANT(METHOD_TRACE); - BIND_CONSTANT(METHOD_CONNECT); - BIND_CONSTANT(METHOD_MAX); - - BIND_CONSTANT(STATUS_DISCONNECTED); - BIND_CONSTANT(STATUS_RESOLVING); //resolving hostname (if passed a hostname) - BIND_CONSTANT(STATUS_CANT_RESOLVE); - BIND_CONSTANT(STATUS_CONNECTING); //connecting to ip - BIND_CONSTANT(STATUS_CANT_CONNECT); - BIND_CONSTANT(STATUS_CONNECTED); //connected ); requests only accepted here - BIND_CONSTANT(STATUS_REQUESTING); // request in progress - BIND_CONSTANT(STATUS_BODY); // request resulted in body ); which must be read - BIND_CONSTANT(STATUS_CONNECTION_ERROR); - BIND_CONSTANT(STATUS_SSL_HANDSHAKE_ERROR); - - BIND_CONSTANT(RESPONSE_CONTINUE); - BIND_CONSTANT(RESPONSE_SWITCHING_PROTOCOLS); - BIND_CONSTANT(RESPONSE_PROCESSING); + BIND_ENUM_CONSTANT(METHOD_GET); + BIND_ENUM_CONSTANT(METHOD_HEAD); + BIND_ENUM_CONSTANT(METHOD_POST); + BIND_ENUM_CONSTANT(METHOD_PUT); + BIND_ENUM_CONSTANT(METHOD_DELETE); + BIND_ENUM_CONSTANT(METHOD_OPTIONS); + BIND_ENUM_CONSTANT(METHOD_TRACE); + BIND_ENUM_CONSTANT(METHOD_CONNECT); + BIND_ENUM_CONSTANT(METHOD_MAX); + + BIND_ENUM_CONSTANT(STATUS_DISCONNECTED); + BIND_ENUM_CONSTANT(STATUS_RESOLVING); //resolving hostname (if passed a hostname) + BIND_ENUM_CONSTANT(STATUS_CANT_RESOLVE); + BIND_ENUM_CONSTANT(STATUS_CONNECTING); //connecting to ip + BIND_ENUM_CONSTANT(STATUS_CANT_CONNECT); + BIND_ENUM_CONSTANT(STATUS_CONNECTED); //connected ); requests only accepted here + BIND_ENUM_CONSTANT(STATUS_REQUESTING); // request in progress + BIND_ENUM_CONSTANT(STATUS_BODY); // request resulted in body ); which must be read + BIND_ENUM_CONSTANT(STATUS_CONNECTION_ERROR); + BIND_ENUM_CONSTANT(STATUS_SSL_HANDSHAKE_ERROR); + + BIND_ENUM_CONSTANT(RESPONSE_CONTINUE); + BIND_ENUM_CONSTANT(RESPONSE_SWITCHING_PROTOCOLS); + BIND_ENUM_CONSTANT(RESPONSE_PROCESSING); // 2xx successful - BIND_CONSTANT(RESPONSE_OK); - BIND_CONSTANT(RESPONSE_CREATED); - BIND_CONSTANT(RESPONSE_ACCEPTED); - BIND_CONSTANT(RESPONSE_NON_AUTHORITATIVE_INFORMATION); - BIND_CONSTANT(RESPONSE_NO_CONTENT); - BIND_CONSTANT(RESPONSE_RESET_CONTENT); - BIND_CONSTANT(RESPONSE_PARTIAL_CONTENT); - BIND_CONSTANT(RESPONSE_MULTI_STATUS); - BIND_CONSTANT(RESPONSE_IM_USED); + BIND_ENUM_CONSTANT(RESPONSE_OK); + BIND_ENUM_CONSTANT(RESPONSE_CREATED); + BIND_ENUM_CONSTANT(RESPONSE_ACCEPTED); + BIND_ENUM_CONSTANT(RESPONSE_NON_AUTHORITATIVE_INFORMATION); + BIND_ENUM_CONSTANT(RESPONSE_NO_CONTENT); + BIND_ENUM_CONSTANT(RESPONSE_RESET_CONTENT); + BIND_ENUM_CONSTANT(RESPONSE_PARTIAL_CONTENT); + BIND_ENUM_CONSTANT(RESPONSE_MULTI_STATUS); + BIND_ENUM_CONSTANT(RESPONSE_IM_USED); // 3xx redirection - BIND_CONSTANT(RESPONSE_MULTIPLE_CHOICES); - BIND_CONSTANT(RESPONSE_MOVED_PERMANENTLY); - BIND_CONSTANT(RESPONSE_FOUND); - BIND_CONSTANT(RESPONSE_SEE_OTHER); - BIND_CONSTANT(RESPONSE_NOT_MODIFIED); - BIND_CONSTANT(RESPONSE_USE_PROXY); - BIND_CONSTANT(RESPONSE_TEMPORARY_REDIRECT); + BIND_ENUM_CONSTANT(RESPONSE_MULTIPLE_CHOICES); + BIND_ENUM_CONSTANT(RESPONSE_MOVED_PERMANENTLY); + BIND_ENUM_CONSTANT(RESPONSE_FOUND); + BIND_ENUM_CONSTANT(RESPONSE_SEE_OTHER); + BIND_ENUM_CONSTANT(RESPONSE_NOT_MODIFIED); + BIND_ENUM_CONSTANT(RESPONSE_USE_PROXY); + BIND_ENUM_CONSTANT(RESPONSE_TEMPORARY_REDIRECT); // 4xx client error - BIND_CONSTANT(RESPONSE_BAD_REQUEST); - BIND_CONSTANT(RESPONSE_UNAUTHORIZED); - BIND_CONSTANT(RESPONSE_PAYMENT_REQUIRED); - BIND_CONSTANT(RESPONSE_FORBIDDEN); - BIND_CONSTANT(RESPONSE_NOT_FOUND); - BIND_CONSTANT(RESPONSE_METHOD_NOT_ALLOWED); - BIND_CONSTANT(RESPONSE_NOT_ACCEPTABLE); - BIND_CONSTANT(RESPONSE_PROXY_AUTHENTICATION_REQUIRED); - BIND_CONSTANT(RESPONSE_REQUEST_TIMEOUT); - BIND_CONSTANT(RESPONSE_CONFLICT); - BIND_CONSTANT(RESPONSE_GONE); - BIND_CONSTANT(RESPONSE_LENGTH_REQUIRED); - BIND_CONSTANT(RESPONSE_PRECONDITION_FAILED); - BIND_CONSTANT(RESPONSE_REQUEST_ENTITY_TOO_LARGE); - BIND_CONSTANT(RESPONSE_REQUEST_URI_TOO_LONG); - BIND_CONSTANT(RESPONSE_UNSUPPORTED_MEDIA_TYPE); - BIND_CONSTANT(RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE); - BIND_CONSTANT(RESPONSE_EXPECTATION_FAILED); - BIND_CONSTANT(RESPONSE_UNPROCESSABLE_ENTITY); - BIND_CONSTANT(RESPONSE_LOCKED); - BIND_CONSTANT(RESPONSE_FAILED_DEPENDENCY); - BIND_CONSTANT(RESPONSE_UPGRADE_REQUIRED); + BIND_ENUM_CONSTANT(RESPONSE_BAD_REQUEST); + BIND_ENUM_CONSTANT(RESPONSE_UNAUTHORIZED); + BIND_ENUM_CONSTANT(RESPONSE_PAYMENT_REQUIRED); + BIND_ENUM_CONSTANT(RESPONSE_FORBIDDEN); + BIND_ENUM_CONSTANT(RESPONSE_NOT_FOUND); + BIND_ENUM_CONSTANT(RESPONSE_METHOD_NOT_ALLOWED); + BIND_ENUM_CONSTANT(RESPONSE_NOT_ACCEPTABLE); + BIND_ENUM_CONSTANT(RESPONSE_PROXY_AUTHENTICATION_REQUIRED); + BIND_ENUM_CONSTANT(RESPONSE_REQUEST_TIMEOUT); + BIND_ENUM_CONSTANT(RESPONSE_CONFLICT); + BIND_ENUM_CONSTANT(RESPONSE_GONE); + BIND_ENUM_CONSTANT(RESPONSE_LENGTH_REQUIRED); + BIND_ENUM_CONSTANT(RESPONSE_PRECONDITION_FAILED); + BIND_ENUM_CONSTANT(RESPONSE_REQUEST_ENTITY_TOO_LARGE); + BIND_ENUM_CONSTANT(RESPONSE_REQUEST_URI_TOO_LONG); + BIND_ENUM_CONSTANT(RESPONSE_UNSUPPORTED_MEDIA_TYPE); + BIND_ENUM_CONSTANT(RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE); + BIND_ENUM_CONSTANT(RESPONSE_EXPECTATION_FAILED); + BIND_ENUM_CONSTANT(RESPONSE_UNPROCESSABLE_ENTITY); + BIND_ENUM_CONSTANT(RESPONSE_LOCKED); + BIND_ENUM_CONSTANT(RESPONSE_FAILED_DEPENDENCY); + BIND_ENUM_CONSTANT(RESPONSE_UPGRADE_REQUIRED); // 5xx server error - BIND_CONSTANT(RESPONSE_INTERNAL_SERVER_ERROR); - BIND_CONSTANT(RESPONSE_NOT_IMPLEMENTED); - BIND_CONSTANT(RESPONSE_BAD_GATEWAY); - BIND_CONSTANT(RESPONSE_SERVICE_UNAVAILABLE); - BIND_CONSTANT(RESPONSE_GATEWAY_TIMEOUT); - BIND_CONSTANT(RESPONSE_HTTP_VERSION_NOT_SUPPORTED); - BIND_CONSTANT(RESPONSE_INSUFFICIENT_STORAGE); - BIND_CONSTANT(RESPONSE_NOT_EXTENDED); + BIND_ENUM_CONSTANT(RESPONSE_INTERNAL_SERVER_ERROR); + BIND_ENUM_CONSTANT(RESPONSE_NOT_IMPLEMENTED); + BIND_ENUM_CONSTANT(RESPONSE_BAD_GATEWAY); + BIND_ENUM_CONSTANT(RESPONSE_SERVICE_UNAVAILABLE); + BIND_ENUM_CONSTANT(RESPONSE_GATEWAY_TIMEOUT); + BIND_ENUM_CONSTANT(RESPONSE_HTTP_VERSION_NOT_SUPPORTED); + BIND_ENUM_CONSTANT(RESPONSE_INSUFFICIENT_STORAGE); + BIND_ENUM_CONSTANT(RESPONSE_NOT_EXTENDED); } void HTTPClient::set_read_chunk_size(int p_size) { diff --git a/core/io/http_client.h b/core/io/http_client.h index 3cee1e0c6b..cc5f1ed935 100644 --- a/core/io/http_client.h +++ b/core/io/http_client.h @@ -197,6 +197,7 @@ public: ~HTTPClient(); }; +VARIANT_ENUM_CAST(HTTPClient::ResponseCode) VARIANT_ENUM_CAST(HTTPClient::Method); VARIANT_ENUM_CAST(HTTPClient::Status); diff --git a/core/io/ip.cpp b/core/io/ip.cpp index c869bdad9b..0e2b5ed519 100644 --- a/core/io/ip.cpp +++ b/core/io/ip.cpp @@ -242,18 +242,18 @@ void IP::_bind_methods() { ClassDB::bind_method(D_METHOD("get_local_addresses"), &IP::_get_local_addresses); ClassDB::bind_method(D_METHOD("clear_cache", "hostname"), &IP::clear_cache, DEFVAL("")); - BIND_CONSTANT(RESOLVER_STATUS_NONE); - BIND_CONSTANT(RESOLVER_STATUS_WAITING); - BIND_CONSTANT(RESOLVER_STATUS_DONE); - BIND_CONSTANT(RESOLVER_STATUS_ERROR); + BIND_ENUM_CONSTANT(RESOLVER_STATUS_NONE); + BIND_ENUM_CONSTANT(RESOLVER_STATUS_WAITING); + BIND_ENUM_CONSTANT(RESOLVER_STATUS_DONE); + BIND_ENUM_CONSTANT(RESOLVER_STATUS_ERROR); BIND_CONSTANT(RESOLVER_MAX_QUERIES); BIND_CONSTANT(RESOLVER_INVALID_ID); - BIND_CONSTANT(TYPE_NONE); - BIND_CONSTANT(TYPE_IPV4); - BIND_CONSTANT(TYPE_IPV6); - BIND_CONSTANT(TYPE_ANY); + BIND_ENUM_CONSTANT(TYPE_NONE); + BIND_ENUM_CONSTANT(TYPE_IPV4); + BIND_ENUM_CONSTANT(TYPE_IPV6); + BIND_ENUM_CONSTANT(TYPE_ANY); } IP *IP::singleton = NULL; diff --git a/core/io/networked_multiplayer_peer.cpp b/core/io/networked_multiplayer_peer.cpp index 105b8dce44..402526a52c 100644 --- a/core/io/networked_multiplayer_peer.cpp +++ b/core/io/networked_multiplayer_peer.cpp @@ -44,13 +44,13 @@ void NetworkedMultiplayerPeer::_bind_methods() { ClassDB::bind_method(D_METHOD("set_refuse_new_connections", "enable"), &NetworkedMultiplayerPeer::set_refuse_new_connections); ClassDB::bind_method(D_METHOD("is_refusing_new_connections"), &NetworkedMultiplayerPeer::is_refusing_new_connections); - BIND_CONSTANT(TRANSFER_MODE_UNRELIABLE); - BIND_CONSTANT(TRANSFER_MODE_UNRELIABLE_ORDERED); - BIND_CONSTANT(TRANSFER_MODE_RELIABLE); + BIND_ENUM_CONSTANT(TRANSFER_MODE_UNRELIABLE); + BIND_ENUM_CONSTANT(TRANSFER_MODE_UNRELIABLE_ORDERED); + BIND_ENUM_CONSTANT(TRANSFER_MODE_RELIABLE); - BIND_CONSTANT(CONNECTION_DISCONNECTED); - BIND_CONSTANT(CONNECTION_CONNECTING); - BIND_CONSTANT(CONNECTION_CONNECTED); + BIND_ENUM_CONSTANT(CONNECTION_DISCONNECTED); + BIND_ENUM_CONSTANT(CONNECTION_CONNECTING); + BIND_ENUM_CONSTANT(CONNECTION_CONNECTED); BIND_CONSTANT(TARGET_PEER_BROADCAST); BIND_CONSTANT(TARGET_PEER_SERVER); diff --git a/core/io/stream_peer_ssl.cpp b/core/io/stream_peer_ssl.cpp index ef3c264375..24f6473330 100644 --- a/core/io/stream_peer_ssl.cpp +++ b/core/io/stream_peer_ssl.cpp @@ -55,10 +55,11 @@ void StreamPeerSSL::_bind_methods() { ClassDB::bind_method(D_METHOD("connect_to_stream", "stream", "validate_certs", "for_hostname"), &StreamPeerSSL::connect_to_stream, DEFVAL(false), DEFVAL(String())); ClassDB::bind_method(D_METHOD("get_status"), &StreamPeerSSL::get_status); ClassDB::bind_method(D_METHOD("disconnect_from_stream"), &StreamPeerSSL::disconnect_from_stream); - BIND_CONSTANT(STATUS_DISCONNECTED); - BIND_CONSTANT(STATUS_CONNECTED); - BIND_CONSTANT(STATUS_ERROR_NO_CERTIFICATE); - BIND_CONSTANT(STATUS_ERROR_HOSTNAME_MISMATCH); + + BIND_ENUM_CONSTANT(STATUS_DISCONNECTED); + BIND_ENUM_CONSTANT(STATUS_CONNECTED); + BIND_ENUM_CONSTANT(STATUS_ERROR_NO_CERTIFICATE); + BIND_ENUM_CONSTANT(STATUS_ERROR_HOSTNAME_MISMATCH); } StreamPeerSSL::StreamPeerSSL() { diff --git a/core/io/stream_peer_tcp.cpp b/core/io/stream_peer_tcp.cpp index 5c859ea7c0..ae5603aa31 100644 --- a/core/io/stream_peer_tcp.cpp +++ b/core/io/stream_peer_tcp.cpp @@ -55,10 +55,10 @@ void StreamPeerTCP::_bind_methods() { ClassDB::bind_method(D_METHOD("get_connected_port"), &StreamPeerTCP::get_connected_port); ClassDB::bind_method(D_METHOD("disconnect_from_host"), &StreamPeerTCP::disconnect_from_host); - BIND_CONSTANT(STATUS_NONE); - BIND_CONSTANT(STATUS_CONNECTING); - BIND_CONSTANT(STATUS_CONNECTED); - BIND_CONSTANT(STATUS_ERROR); + BIND_ENUM_CONSTANT(STATUS_NONE); + BIND_ENUM_CONSTANT(STATUS_CONNECTING); + BIND_ENUM_CONSTANT(STATUS_CONNECTED); + BIND_ENUM_CONSTANT(STATUS_ERROR); } Ref<StreamPeerTCP> StreamPeerTCP::create_ref() { diff --git a/core/io/xml_parser.cpp b/core/io/xml_parser.cpp index e5f4433b8f..d8b69b0951 100644 --- a/core/io/xml_parser.cpp +++ b/core/io/xml_parser.cpp @@ -373,13 +373,13 @@ void XMLParser::_bind_methods() { ClassDB::bind_method(D_METHOD("open", "file"), &XMLParser::open); ClassDB::bind_method(D_METHOD("open_buffer", "buffer"), &XMLParser::open_buffer); - BIND_CONSTANT(NODE_NONE); - BIND_CONSTANT(NODE_ELEMENT); - BIND_CONSTANT(NODE_ELEMENT_END); - BIND_CONSTANT(NODE_TEXT); - BIND_CONSTANT(NODE_COMMENT); - BIND_CONSTANT(NODE_CDATA); - BIND_CONSTANT(NODE_UNKNOWN); + BIND_ENUM_CONSTANT(NODE_NONE); + BIND_ENUM_CONSTANT(NODE_ELEMENT); + BIND_ENUM_CONSTANT(NODE_ELEMENT_END); + BIND_ENUM_CONSTANT(NODE_TEXT); + BIND_ENUM_CONSTANT(NODE_COMMENT); + BIND_ENUM_CONSTANT(NODE_CDATA); + BIND_ENUM_CONSTANT(NODE_UNKNOWN); }; Error XMLParser::read() { diff --git a/core/math/matrix3.cpp b/core/math/matrix3.cpp index f2f6ff93cf..ec82bd30d4 100644 --- a/core/math/matrix3.cpp +++ b/core/math/matrix3.cpp @@ -365,14 +365,10 @@ Vector3 Basis::get_euler_xyz() const { if (euler.y < Math_PI * 0.5) { if (euler.y > -Math_PI * 0.5) { //if rotation is Y-only, return a proper -pi,pi range like in x or z for the same case. - if (elements[1][0] == 0.0 && elements[0][1] == 0.0 && elements[0][0] < 0.0) { + if (elements[1][0] == 0.0 && elements[0][1] == 0.0 && elements[1][2] == 0 && elements[2][1] == 0 && elements[1][1] == 1) { euler.x = 0; + euler.y = atan2(elements[0][2], elements[0][0]); euler.z = 0; - - if (euler.y > 0.0) - euler.y = Math_PI - euler.y; - else - euler.y = -(Math_PI + euler.y); } else { euler.x = Math::atan2(-elements[1][2], elements[2][2]); euler.z = Math::atan2(-elements[0][1], elements[0][0]); @@ -436,15 +432,10 @@ Vector3 Basis::get_euler_yxz() const { if (m12 < 1) { if (m12 > -1) { - if (elements[1][0] == 0 && elements[0][1] == 0 && elements[2][2] < 0) { // use pure x rotation - real_t x = asin(-m12); + if (elements[1][0] == 0 && elements[0][1] == 0 && elements[0][2] == 0 && elements[2][0] == 0 && elements[0][0] == 1) { // use pure x rotation + euler.x = atan2(-m12, elements[1][1]); euler.y = 0; euler.z = 0; - - if (x > 0.0) - euler.x = Math_PI - x; - else - euler.x = -(Math_PI + x); } else { euler.x = asin(-m12); euler.y = atan2(elements[0][2], elements[2][2]); diff --git a/core/method_bind.h b/core/method_bind.h index 9bf0323733..157a67ca20 100644 --- a/core/method_bind.h +++ b/core/method_bind.h @@ -124,6 +124,9 @@ struct VariantCaster<const T &> { #endif +// Object enum casts must go here +VARIANT_ENUM_CAST(Object::ConnectFlags); + #define CHECK_ARG(m_arg) \ if ((m_arg - 1) < p_arg_count) { \ Variant::Type argtype = get_argument_type(m_arg - 1); \ @@ -148,14 +151,35 @@ struct VariantCaster<const T &> { VARIANT_ENUM_CAST(Vector3::Axis); VARIANT_ENUM_CAST(Error); -VARIANT_ENUM_CAST(wchar_t); VARIANT_ENUM_CAST(Margin); VARIANT_ENUM_CAST(Corner); VARIANT_ENUM_CAST(Orientation); VARIANT_ENUM_CAST(HAlign); +VARIANT_ENUM_CAST(VAlign); +VARIANT_ENUM_CAST(PropertyHint); +VARIANT_ENUM_CAST(PropertyUsageFlags); +VARIANT_ENUM_CAST(MethodFlags); VARIANT_ENUM_CAST(Variant::Type); VARIANT_ENUM_CAST(Variant::Operator); +template <> +struct VariantCaster<wchar_t> { + static _FORCE_INLINE_ wchar_t cast(const Variant &p_variant) { + return (wchar_t)p_variant.operator int(); + } +}; +#ifdef PTRCALL_ENABLED +template <> +struct PtrToArg<wchar_t> { + _FORCE_INLINE_ static wchar_t convert(const void *p_ptr) { + return wchar_t(*reinterpret_cast<const int *>(p_ptr)); + } + _FORCE_INLINE_ static void encode(wchar_t p_val, const void *p_ptr) { + *(int *)p_ptr = p_val; + } +}; +#endif + class MethodBind { int method_id; diff --git a/core/object.cpp b/core/object.cpp index 06c2603b74..a43a9c85b1 100644 --- a/core/object.cpp +++ b/core/object.cpp @@ -1737,9 +1737,9 @@ void Object::_bind_methods() { BIND_CONSTANT(NOTIFICATION_POSTINITIALIZE); BIND_CONSTANT(NOTIFICATION_PREDELETE); - BIND_CONSTANT(CONNECT_DEFERRED); - BIND_CONSTANT(CONNECT_PERSIST); - BIND_CONSTANT(CONNECT_ONESHOT); + BIND_ENUM_CONSTANT(CONNECT_DEFERRED); + BIND_ENUM_CONSTANT(CONNECT_PERSIST); + BIND_ENUM_CONSTANT(CONNECT_ONESHOT); } void Object::call_deferred(const StringName &p_method, VARIANT_ARG_DECLARE) { diff --git a/core/os/input.cpp b/core/os/input.cpp index c7b32b939a..81ca31da25 100644 --- a/core/os/input.cpp +++ b/core/os/input.cpp @@ -86,10 +86,10 @@ void Input::_bind_methods() { ClassDB::bind_method(D_METHOD("set_custom_mouse_cursor", "image", "hotspot"), &Input::set_custom_mouse_cursor, DEFVAL(Vector2())); ClassDB::bind_method(D_METHOD("parse_input_event", "event"), &Input::parse_input_event); - BIND_CONSTANT(MOUSE_MODE_VISIBLE); - BIND_CONSTANT(MOUSE_MODE_HIDDEN); - BIND_CONSTANT(MOUSE_MODE_CAPTURED); - BIND_CONSTANT(MOUSE_MODE_CONFINED); + BIND_ENUM_CONSTANT(MOUSE_MODE_VISIBLE); + BIND_ENUM_CONSTANT(MOUSE_MODE_HIDDEN); + BIND_ENUM_CONSTANT(MOUSE_MODE_CAPTURED); + BIND_ENUM_CONSTANT(MOUSE_MODE_CONFINED); ADD_SIGNAL(MethodInfo("joy_connection_changed", PropertyInfo(Variant::INT, "index"), PropertyInfo(Variant::BOOL, "connected"))); } diff --git a/core/os/main_loop.cpp b/core/os/main_loop.cpp index 248f5537c6..6d07e2a39c 100644 --- a/core/os/main_loop.cpp +++ b/core/os/main_loop.cpp @@ -54,6 +54,8 @@ void MainLoop::_bind_methods() { BIND_CONSTANT(NOTIFICATION_WM_QUIT_REQUEST); BIND_CONSTANT(NOTIFICATION_WM_UNFOCUS_REQUEST); BIND_CONSTANT(NOTIFICATION_OS_MEMORY_WARNING); + BIND_CONSTANT(NOTIFICATION_TRANSLATION_CHANGED); + BIND_CONSTANT(NOTIFICATION_WM_ABOUT); }; void MainLoop::set_init_script(const Ref<Script> &p_init_script) { diff --git a/core/os/main_loop.h b/core/os/main_loop.h index 23b352468e..a0125ec13c 100644 --- a/core/os/main_loop.h +++ b/core/os/main_loop.h @@ -56,7 +56,11 @@ public: NOTIFICATION_WM_GO_BACK_REQUEST = 7, NOTIFICATION_WM_UNFOCUS_REQUEST = 8, NOTIFICATION_OS_MEMORY_WARNING = 9, - NOTIFICATION_TRANSLATION_CHANGED = 10, + // Note: NOTIFICATION_TRANSLATION_CHANGED and NOTIFICATION_WM_ABOUT used to have id=10 and id=11 but these + // conflict with NOTIFICATION_ENTER_TREE (id=10) and NOTIFICATION_EXIT_TREE (id=11), so id=90 and id=91 + // fixes this issue. + NOTIFICATION_TRANSLATION_CHANGED = 90, + NOTIFICATION_WM_ABOUT = 91, }; virtual void input_event(const Ref<InputEvent> &p_event); diff --git a/core/os/os.h b/core/os/os.h index 4d64e4a9f0..0fcf465655 100644 --- a/core/os/os.h +++ b/core/os/os.h @@ -164,9 +164,9 @@ public: virtual int get_screen_count() const { return 1; } virtual int get_current_screen() const { return 0; } virtual void set_current_screen(int p_screen) {} - virtual Point2 get_screen_position(int p_screen = 0) const { return Point2(); } - virtual Size2 get_screen_size(int p_screen = 0) const { return get_window_size(); } - virtual int get_screen_dpi(int p_screen = 0) const { return 72; } + virtual Point2 get_screen_position(int p_screen = -1) const { return Point2(); } + virtual Size2 get_screen_size(int p_screen = -1) const { return get_window_size(); } + virtual int get_screen_dpi(int p_screen = -1) const { return 72; } virtual Point2 get_window_position() const { return Vector2(); } virtual void set_window_position(const Point2 &p_position) {} virtual Size2 get_window_size() const = 0; diff --git a/core/register_core_types.cpp b/core/register_core_types.cpp index fca9afbf5e..e5441093ac 100644 --- a/core/register_core_types.cpp +++ b/core/register_core_types.cpp @@ -75,6 +75,8 @@ static _Geometry *_geometry = NULL; extern Mutex *_global_mutex; +extern void register_global_constants(); +extern void unregister_global_constants(); extern void register_variant_methods(); extern void unregister_variant_methods(); @@ -88,6 +90,7 @@ void register_core_types() { StringName::setup(); + register_global_constants(); register_variant_methods(); CoreStringNames::create(); @@ -218,6 +221,7 @@ void unregister_core_types() { ObjectDB::cleanup(); unregister_variant_methods(); + unregister_global_constants(); ClassDB::cleanup(); ResourceCache::clear(); diff --git a/core/simple_type.h b/core/simple_type.h index 6003bd393f..b4a6dd1fa8 100644 --- a/core/simple_type.h +++ b/core/simple_type.h @@ -33,95 +33,21 @@ /* Batch of specializations to obtain the actual simple type */ template <class T> -struct GetSimpleType { - - T type; -}; - -template <class T> struct GetSimpleTypeT { typedef T type_t; }; template <class T> -struct GetSimpleType<T &> { - - T type; -}; - -template <class T> struct GetSimpleTypeT<T &> { typedef T type_t; }; template <class T> -struct GetSimpleType<T const> { - - T type; - _FORCE_INLINE_ GetSimpleType() {} -}; - -template <class T> struct GetSimpleTypeT<T const> { typedef T type_t; }; -template <class T> -struct GetSimpleType<const T &> { - - T type; - _FORCE_INLINE_ GetSimpleType() {} -}; - -template <class T> -struct GetSimpleType<T *> { - - T *type; - _FORCE_INLINE_ GetSimpleType() { type = NULL; } -}; - -template <class T> -struct GetSimpleType<const T *> { - - T *type; - _FORCE_INLINE_ GetSimpleType() { type = NULL; } -}; - -#define SIMPLE_NUMERIC_TYPE(m_type) \ - template <> \ - struct GetSimpleType<m_type> { \ - m_type type; \ - _FORCE_INLINE_ GetSimpleType() { type = (m_type)0; } \ - }; \ - template <> \ - struct GetSimpleType<m_type const> { \ - m_type type; \ - _FORCE_INLINE_ GetSimpleType() { type = (m_type)0; } \ - }; \ - template <> \ - struct GetSimpleType<m_type &> { \ - m_type type; \ - _FORCE_INLINE_ GetSimpleType() { type = (m_type)0; } \ - }; \ - template <> \ - struct GetSimpleType<const m_type &> { \ - m_type type; \ - _FORCE_INLINE_ GetSimpleType() { type = (m_type)0; } \ - }; - -SIMPLE_NUMERIC_TYPE(bool); -SIMPLE_NUMERIC_TYPE(uint8_t); -SIMPLE_NUMERIC_TYPE(int8_t); -SIMPLE_NUMERIC_TYPE(uint16_t); -SIMPLE_NUMERIC_TYPE(int16_t); -SIMPLE_NUMERIC_TYPE(uint32_t); -SIMPLE_NUMERIC_TYPE(int32_t); -SIMPLE_NUMERIC_TYPE(int64_t); -SIMPLE_NUMERIC_TYPE(uint64_t); -SIMPLE_NUMERIC_TYPE(float); -SIMPLE_NUMERIC_TYPE(double); - #endif diff --git a/core/type_info.h b/core/type_info.h index 10912fd074..0603126996 100644 --- a/core/type_info.h +++ b/core/type_info.h @@ -1,6 +1,8 @@ #ifndef GET_TYPE_INFO_H #define GET_TYPE_INFO_H +#ifdef DEBUG_METHODS_ENABLED + template <bool C, typename T = void> struct EnableIf { @@ -40,8 +42,8 @@ struct GetTypeInfo { enum { VARIANT_TYPE = Variant::NIL }; static inline StringName get_class_name() { - ERR_PRINT("Fallback type info. Bug!"); - return ""; // Not "Nil", this is an error + ERR_PRINT("GetTypeInfo fallback. Bug!"); + return StringName(); // Not "Nil", this is an error } }; @@ -70,6 +72,7 @@ MAKE_TYPE_INFO(uint32_t, Variant::INT) MAKE_TYPE_INFO(int32_t, Variant::INT) MAKE_TYPE_INFO(int64_t, Variant::INT) MAKE_TYPE_INFO(uint64_t, Variant::INT) +MAKE_TYPE_INFO(wchar_t, Variant::INT) MAKE_TYPE_INFO(float, Variant::REAL) MAKE_TYPE_INFO(double, Variant::REAL) @@ -152,36 +155,6 @@ MAKE_TEMPLATE_TYPE_INFO(Vector, Plane, Variant::ARRAY) MAKE_TEMPLATE_TYPE_INFO(PoolVector, Plane, Variant::ARRAY) MAKE_TEMPLATE_TYPE_INFO(PoolVector, Face3, Variant::POOL_VECTOR3_ARRAY) -#define MAKE_ENUM_TYPE_INFO(m_enum) \ - template <> \ - struct GetTypeInfo<m_enum> { \ - enum { VARIANT_TYPE = Variant::INT }; \ - static inline StringName get_class_name() { \ - return Variant::get_type_name((Variant::Type)VARIANT_TYPE); \ - } \ - }; \ - template <> \ - struct GetTypeInfo<m_enum const> { \ - enum { VARIANT_TYPE = Variant::INT }; \ - static inline StringName get_class_name() { \ - return Variant::get_type_name((Variant::Type)VARIANT_TYPE); \ - } \ - }; \ - template <> \ - struct GetTypeInfo<m_enum &> { \ - enum { VARIANT_TYPE = Variant::INT }; \ - static inline StringName get_class_name() { \ - return Variant::get_type_name((Variant::Type)VARIANT_TYPE); \ - } \ - }; \ - template <> \ - struct GetTypeInfo<const m_enum &> { \ - enum { VARIANT_TYPE = Variant::INT }; \ - static inline StringName get_class_name() { \ - return Variant::get_type_name((Variant::Type)VARIANT_TYPE); \ - } \ - }; - template <typename T> struct GetTypeInfo<T *, typename EnableIf<TypeInherits<Object, T>::value>::type> { enum { VARIANT_TYPE = Variant::OBJECT }; @@ -200,4 +173,30 @@ struct GetTypeInfo<const T *, typename EnableIf<TypeInherits<Object, T>::value>: } }; +#define TEMPL_MAKE_ENUM_TYPE_INFO(m_enum, m_impl) \ + template <> \ + struct GetTypeInfo<m_impl> { \ + enum { VARIANT_TYPE = Variant::INT }; \ + static inline StringName get_class_name() { return "enum." #m_enum; } \ + }; + +#define MAKE_ENUM_TYPE_INFO(m_enum) \ + TEMPL_MAKE_ENUM_TYPE_INFO(m_enum, m_enum) \ + TEMPL_MAKE_ENUM_TYPE_INFO(m_enum, m_enum const) \ + TEMPL_MAKE_ENUM_TYPE_INFO(m_enum, m_enum &) \ + TEMPL_MAKE_ENUM_TYPE_INFO(m_enum, const m_enum &) + +template <typename T> +inline StringName __constant_get_enum_name(T param, const String &p_constant) { + if (GetTypeInfo<T>::VARIANT_TYPE == Variant::NIL) + ERR_PRINTS("Missing VARIANT_ENUM_CAST for constant's enum: " + p_constant); + return GetTypeInfo<T>::get_class_name(); +} + +#else + +#define MAKE_ENUM_TYPE_INFO(m_enum) + +#endif // DEBUG_METHODS_ENABLED + #endif // GET_TYPE_INFO_H diff --git a/core/undo_redo.cpp b/core/undo_redo.cpp index 19b9f161b7..bb70146396 100644 --- a/core/undo_redo.cpp +++ b/core/undo_redo.cpp @@ -504,7 +504,7 @@ void UndoRedo::_bind_methods() { ClassDB::bind_method(D_METHOD("get_current_action_name"), &UndoRedo::get_current_action_name); ClassDB::bind_method(D_METHOD("get_version"), &UndoRedo::get_version); - BIND_CONSTANT(MERGE_DISABLE); - BIND_CONSTANT(MERGE_ENDS); - BIND_CONSTANT(MERGE_ALL); + BIND_ENUM_CONSTANT(MERGE_DISABLE); + BIND_ENUM_CONSTANT(MERGE_ENDS); + BIND_ENUM_CONSTANT(MERGE_ALL); } diff --git a/drivers/gles2/rasterizer_gles2.cpp b/drivers/gles2/rasterizer_gles2.cpp index 6a6611ff81..75d5d01890 100644 --- a/drivers/gles2/rasterizer_gles2.cpp +++ b/drivers/gles2/rasterizer_gles2.cpp @@ -654,7 +654,6 @@ Ref<Image> RasterizerGLES2::_get_gl_image_and_format(const Ref<Image> &p_image, } else { - r_gl_internal_format = _EXT_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; r_gl_internal_format = (srgb_supported && p_flags & VS::TEXTURE_FLAG_CONVERT_TO_LINEAR) ? _EXT_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT : _EXT_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; r_gl_components = 1; //doesn't matter much r_compressed = true; diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp index 52c7327baf..c89fc0768f 100644 --- a/drivers/gles3/rasterizer_scene_gles3.cpp +++ b/drivers/gles3/rasterizer_scene_gles3.cpp @@ -3302,6 +3302,10 @@ void RasterizerSceneGLES3::_render_mrts(Environment *env, const CameraMatrix &p_ if (state.used_sss) { //sss enabled //copy diffuse while performing sss + Plane p = p_cam_projection.xform4(Plane(1, 0, -1, 1)); + p.normal /= p.d; + float unit_size = p.normal.x; + //copy normal and roughness to effect buffer glBindFramebuffer(GL_READ_FRAMEBUFFER, storage->frame.current_rt->buffers.fbo); glReadBuffer(GL_COLOR_ATTACHMENT3); @@ -3312,9 +3316,10 @@ void RasterizerSceneGLES3::_render_mrts(Environment *env, const CameraMatrix &p_ state.sss_shader.set_conditional(SubsurfScatteringShaderGLES3::USE_17_SAMPLES, subsurface_scatter_quality == SSS_QUALITY_MEDIUM); state.sss_shader.set_conditional(SubsurfScatteringShaderGLES3::USE_25_SAMPLES, subsurface_scatter_quality == SSS_QUALITY_HIGH); state.sss_shader.set_conditional(SubsurfScatteringShaderGLES3::ENABLE_FOLLOW_SURFACE, subsurface_scatter_follow_surface); + state.sss_shader.set_conditional(SubsurfScatteringShaderGLES3::ENABLE_STRENGTH_WEIGHTING, subsurface_scatter_weight_samples); state.sss_shader.bind(); state.sss_shader.set_uniform(SubsurfScatteringShaderGLES3::MAX_RADIUS, subsurface_scatter_size); - state.sss_shader.set_uniform(SubsurfScatteringShaderGLES3::FOVY, p_cam_projection.get_fov()); + state.sss_shader.set_uniform(SubsurfScatteringShaderGLES3::UNIT_SIZE, unit_size); state.sss_shader.set_uniform(SubsurfScatteringShaderGLES3::CAMERA_Z_NEAR, p_cam_projection.get_z_near()); state.sss_shader.set_uniform(SubsurfScatteringShaderGLES3::CAMERA_Z_FAR, p_cam_projection.get_z_far()); state.sss_shader.set_uniform(SubsurfScatteringShaderGLES3::DIR, Vector2(1, 0)); @@ -3329,14 +3334,13 @@ void RasterizerSceneGLES3::_render_mrts(Environment *env, const CameraMatrix &p_ glBindTexture(GL_TEXTURE_2D, storage->frame.current_rt->effects.ssao.blur_red[0]); glActiveTexture(GL_TEXTURE2); glBindTexture(GL_TEXTURE_2D, storage->frame.current_rt->depth); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_NONE); + //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_NONE); glBindFramebuffer(GL_FRAMEBUFFER, storage->frame.current_rt->fbo); //copy to front first _copy_screen(true); glActiveTexture(GL_TEXTURE0); - glBindTexture(GL_TEXTURE_2D, storage->frame.current_rt->color); state.sss_shader.set_uniform(SubsurfScatteringShaderGLES3::DIR, Vector2(0, 1)); glBindFramebuffer(GL_FRAMEBUFFER, storage->frame.current_rt->effects.mip_maps[0].sizes[0].fbo); // copy to base level @@ -4955,6 +4959,7 @@ void RasterizerSceneGLES3::initialize() { GLOBAL_DEF("rendering/quality/subsurface_scattering/scale", 1.0); ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/subsurface_scattering/scale", PropertyInfo(Variant::INT, "rendering/quality/subsurface_scattering/scale", PROPERTY_HINT_RANGE, "0.01,8,0.01")); GLOBAL_DEF("rendering/quality/subsurface_scattering/follow_surface", false); + GLOBAL_DEF("rendering/quality/subsurface_scattering/weight_samples", true); GLOBAL_DEF("rendering/quality/voxel_cone_tracing/high_quality", true); } @@ -4997,6 +5002,7 @@ void RasterizerSceneGLES3::iteration() { shadow_filter_mode = ShadowFilterMode(int(ProjectSettings::get_singleton()->get("rendering/quality/shadows/filter_mode"))); subsurface_scatter_follow_surface = ProjectSettings::get_singleton()->get("rendering/quality/subsurface_scattering/follow_surface"); + subsurface_scatter_weight_samples = ProjectSettings::get_singleton()->get("rendering/quality/subsurface_scattering/weight_samples"); subsurface_scatter_quality = SubSurfaceScatterQuality(int(ProjectSettings::get_singleton()->get("rendering/quality/subsurface_scattering/quality"))); subsurface_scatter_size = ProjectSettings::get_singleton()->get("rendering/quality/subsurface_scattering/scale"); diff --git a/drivers/gles3/rasterizer_scene_gles3.h b/drivers/gles3/rasterizer_scene_gles3.h index 740d277a3a..94781c53e8 100644 --- a/drivers/gles3/rasterizer_scene_gles3.h +++ b/drivers/gles3/rasterizer_scene_gles3.h @@ -66,6 +66,7 @@ public: SubSurfaceScatterQuality subsurface_scatter_quality; float subsurface_scatter_size; bool subsurface_scatter_follow_surface; + bool subsurface_scatter_weight_samples; uint64_t render_pass; uint64_t scene_pass; diff --git a/drivers/gles3/rasterizer_storage_gles3.cpp b/drivers/gles3/rasterizer_storage_gles3.cpp index dc9006a4e1..68731308a9 100644 --- a/drivers/gles3/rasterizer_storage_gles3.cpp +++ b/drivers/gles3/rasterizer_storage_gles3.cpp @@ -6253,7 +6253,7 @@ void RasterizerStorageGLES3::_render_target_allocate(RenderTarget *rt) { glBindFramebuffer(GL_FRAMEBUFFER, mm.fbo); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, rt->effects.mip_maps[i].color, j); bool used_depth = false; - if (j == 0 && i == 0 && rt->buffers.active == false && !rt->flags[RENDER_TARGET_NO_3D]) { //will use this one for rendering 3D + if (j == 0 && i == 0) { //use always glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, rt->depth, 0); used_depth = true; } diff --git a/drivers/gles3/shaders/subsurf_scattering.glsl b/drivers/gles3/shaders/subsurf_scattering.glsl index 569be6c5fe..8873443727 100644 --- a/drivers/gles3/shaders/subsurf_scattering.glsl +++ b/drivers/gles3/shaders/subsurf_scattering.glsl @@ -17,36 +17,36 @@ void main() { //#define QUALIFIER uniform // some guy on the interweb says it may be faster with this #define QUALIFIER const - #ifdef USE_25_SAMPLES const int kernel_size=25; -QUALIFIER vec4 kernel[25] = vec4[] ( - vec4(0.530605, 0.613514, 0.739601, 0.0), - vec4(0.000973794, 1.11862e-005, 9.43437e-007, -3.0), - vec4(0.00333804, 7.85443e-005, 1.2945e-005, -2.52083), - vec4(0.00500364, 0.00020094, 5.28848e-005, -2.08333), - vec4(0.00700976, 0.00049366, 0.000151938, -1.6875), - vec4(0.0094389, 0.00139119, 0.000416598, -1.33333), - vec4(0.0128496, 0.00356329, 0.00132016, -1.02083), - vec4(0.017924, 0.00711691, 0.00347194, -0.75), - vec4(0.0263642, 0.0119715, 0.00684598, -0.520833), - vec4(0.0410172, 0.0199899, 0.0118481, -0.333333), - vec4(0.0493588, 0.0367726, 0.0219485, -0.1875), - vec4(0.0402784, 0.0657244, 0.04631, -0.0833333), - vec4(0.0211412, 0.0459286, 0.0378196, -0.0208333), - vec4(0.0211412, 0.0459286, 0.0378196, 0.0208333), - vec4(0.0402784, 0.0657244, 0.04631, 0.0833333), - vec4(0.0493588, 0.0367726, 0.0219485, 0.1875), - vec4(0.0410172, 0.0199899, 0.0118481, 0.333333), - vec4(0.0263642, 0.0119715, 0.00684598, 0.520833), - vec4(0.017924, 0.00711691, 0.00347194, 0.75), - vec4(0.0128496, 0.00356329, 0.00132016, 1.02083), - vec4(0.0094389, 0.00139119, 0.000416598, 1.33333), - vec4(0.00700976, 0.00049366, 0.000151938, 1.6875), - vec4(0.00500364, 0.00020094, 5.28848e-005, 2.08333), - vec4(0.00333804, 7.85443e-005, 1.2945e-005, 2.52083), - vec4(0.000973794, 1.11862e-005, 9.43437e-007, 3.0) + +QUALIFIER vec2 kernel[25] = vec2[] ( +vec2(0.099654,0.0), +vec2(0.001133,-3.0), +vec2(0.002316,-2.52083), +vec2(0.00445,-2.08333), +vec2(0.008033,-1.6875), +vec2(0.013627,-1.33333), +vec2(0.021724,-1.02083), +vec2(0.032542,-0.75), +vec2(0.04581,-0.520833), +vec2(0.0606,-0.333333), +vec2(0.075333,-0.1875), +vec2(0.088001,-0.0833333), +vec2(0.096603,-0.0208333), +vec2(0.096603,0.0208333), +vec2(0.088001,0.0833333), +vec2(0.075333,0.1875), +vec2(0.0606,0.333333), +vec2(0.04581,0.520833), +vec2(0.032542,0.75), +vec2(0.021724,1.02083), +vec2(0.013627,1.33333), +vec2(0.008033,1.6875), +vec2(0.00445,2.08333), +vec2(0.002316,2.52), +vec2(0.001133,3.0) ); #endif //USE_25_SAMPLES @@ -55,24 +55,24 @@ QUALIFIER vec4 kernel[25] = vec4[] ( const int kernel_size=17; -QUALIFIER vec4 kernel[17] = vec4[]( - vec4(0.536343, 0.624624, 0.748867, 0.0), - vec4(0.00317394, 0.000134823, 3.77269e-005, -2.0), - vec4(0.0100386, 0.000914679, 0.000275702, -1.53125), - vec4(0.0144609, 0.00317269, 0.00106399, -1.125), - vec4(0.0216301, 0.00794618, 0.00376991, -0.78125), - vec4(0.0347317, 0.0151085, 0.00871983, -0.5), - vec4(0.0571056, 0.0287432, 0.0172844, -0.28125), - vec4(0.0582416, 0.0659959, 0.0411329, -0.125), - vec4(0.0324462, 0.0656718, 0.0532821, -0.03125), - vec4(0.0324462, 0.0656718, 0.0532821, 0.03125), - vec4(0.0582416, 0.0659959, 0.0411329, 0.125), - vec4(0.0571056, 0.0287432, 0.0172844, 0.28125), - vec4(0.0347317, 0.0151085, 0.00871983, 0.5), - vec4(0.0216301, 0.00794618, 0.00376991, 0.78125), - vec4(0.0144609, 0.00317269, 0.00106399, 1.125), - vec4(0.0100386, 0.000914679, 0.000275702, 1.53125), - vec4(0.00317394, 0.000134823, 3.77269e-005, 2.0) +QUALIFIER vec2 kernel[17] = vec2[]( +vec2(0.197417,0.0), +vec2(0.000078,-2.0), +vec2(0.000489,-1.53125), +vec2(0.002403,-1.125), +vec2(0.009245,-0.78125), +vec2(0.027835,-0.5), +vec2(0.065592,-0.28125), +vec2(0.12098,-0.125), +vec2(0.17467,-0.03125), +vec2(0.17467,0.03125), +vec2(0.12098,0.125), +vec2(0.065592,0.28125), +vec2(0.027835,0.5), +vec2(0.009245,0.78125), +vec2(0.002403,1.125), +vec2(0.000489,1.53125), +vec2(0.000078,2.0) ); #endif //USE_17_SAMPLES @@ -82,27 +82,27 @@ QUALIFIER vec4 kernel[17] = vec4[]( const int kernel_size=11; -QUALIFIER vec4 kernel[11] = vec4[]( - vec4(0.560479, 0.669086, 0.784728, 0.0), - vec4(0.00471691, 0.000184771, 5.07566e-005, -2.0), - vec4(0.0192831, 0.00282018, 0.00084214, -1.28), - vec4(0.03639, 0.0130999, 0.00643685, -0.72), - vec4(0.0821904, 0.0358608, 0.0209261, -0.32), - vec4(0.0771802, 0.113491, 0.0793803, -0.08), - vec4(0.0771802, 0.113491, 0.0793803, 0.08), - vec4(0.0821904, 0.0358608, 0.0209261, 0.32), - vec4(0.03639, 0.0130999, 0.00643685, 0.72), - vec4(0.0192831, 0.00282018, 0.00084214, 1.28), - vec4(0.00471691, 0.000184771, 5.07565e-005, 2.0) +QUALIFIER vec2 kernel[kernel_size] = vec2[]( +vec2(0.198596,0.0), +vec2(0.0093,-2.0), +vec2(0.028002,-1.28), +vec2(0.065984,-0.72), +vec2(0.121703,-0.32), +vec2(0.175713,-0.08), +vec2(0.175713,0.08), +vec2(0.121703,0.32), +vec2(0.065984,0.72), +vec2(0.028002,1.28), +vec2(0.0093,2.0) ); #endif //USE_11_SAMPLES uniform float max_radius; -uniform float fovy; uniform float camera_z_far; uniform float camera_z_near; +uniform float unit_size; uniform vec2 dir; in vec2 uv_interp; @@ -120,19 +120,17 @@ void main() { // Fetch color of current pixel: vec4 base_color = texture(source_diffuse, uv_interp); + if (strength>0.0) { // Fetch linear depth of current pixel: float depth = texture(source_depth, uv_interp).r * 2.0 - 1.0; depth = 2.0 * camera_z_near * camera_z_far / (camera_z_far + camera_z_near - depth * (camera_z_far - camera_z_near)); - depth=-depth; - // Calculate the radius scale (1.0 for a unit plane sitting on the - // projection window): - float distance = 1.0 / tan(0.5 * fovy); - float scale = distance / -depth; //remember depth is negative by default in OpenGL + + float scale = unit_size / depth; //remember depth is negative by default in OpenGL // Calculate the final step to fetch the surrounding pixels: vec2 step = max_radius * scale * dir; @@ -141,19 +139,21 @@ void main() { // Accumulate the center sample: vec3 color_accum = base_color.rgb; - color_accum *= kernel[0].rgb; + color_accum *= kernel[0].x; +#ifdef ENABLE_STRENGTH_WEIGHTING + float color_weight = kernel[0].x; +#endif // Accumulate the other samples: for (int i = 1; i < kernel_size; i++) { // Fetch color and depth for current sample: - vec2 offset = uv_interp + kernel[i].a * step; + vec2 offset = uv_interp + kernel[i].y * step; vec3 color = texture(source_diffuse, offset).rgb; #ifdef ENABLE_FOLLOW_SURFACE // If the difference in depth is huge, we lerp color back to "colorM": float depth_cmp = texture(source_depth, offset).r *2.0 - 1.0; depth_cmp = 2.0 * camera_z_near * camera_z_far / (camera_z_far + camera_z_near - depth_cmp * (camera_z_far - camera_z_near)); - depth_cmp=-depth_cmp; float s = clamp(300.0f * distance * max_radius * abs(depth - depth_cmp),0.0,1.0); @@ -161,9 +161,20 @@ void main() { #endif // Accumulate: - color_accum += kernel[i].rgb * color; + color*=kernel[i].x; + +#ifdef ENABLE_STRENGTH_WEIGHTING + float color_s = texture(source_sss, offset).r; + color_weight+=color_s * kernel[i].x; + color*=color_s; +#endif + color_accum += color; + } +#ifdef ENABLE_STRENGTH_WEIGHTING + color_accum/=color_weight; +#endif frag_color = vec4(color_accum,base_color.a); //keep alpha (used for SSAO) } else { frag_color = base_color; diff --git a/drivers/gles3/shaders/tonemap.glsl b/drivers/gles3/shaders/tonemap.glsl index 988e31d1ea..73dec4f90c 100644 --- a/drivers/gles3/shaders/tonemap.glsl +++ b/drivers/gles3/shaders/tonemap.glsl @@ -170,7 +170,7 @@ vec3 tonemap_aces(vec3 color) { return color = clamp((color*(a*color+b))/(color*(c*color+d)+e),vec3(0.0),vec3(1.0)); } -vec3 tonemap_reindhart(vec3 color,vec3 white) { +vec3 tonemap_reindhart(vec3 color,float white) { return ( color * ( 1.0 + ( color / ( white) ) ) ) / ( 1.0 + color ); } diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index a809f4b15e..4575bfcb08 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -258,7 +258,6 @@ void FindReplaceBar::_get_search_from(int &r_line, int &r_col) { int selection_from_col = text_edit->get_selection_from_column(); if (r_col >= selection_from_col && r_col <= text_edit->get_selection_to_column()) { - r_col = selection_line; r_col = selection_from_col; } } diff --git a/editor/editor_asset_installer.cpp b/editor/editor_asset_installer.cpp index 96bfb295ea..6c05a9ef80 100644 --- a/editor/editor_asset_installer.cpp +++ b/editor/editor_asset_installer.cpp @@ -100,7 +100,7 @@ void EditorAssetInstaller::open(const String &p_path, int p_depth) { //get filename unz_file_info info; char fname[16384]; - ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, NULL, 0, NULL, 0); + unzGetCurrentFileInfo(pkg, &info, fname, 16384, NULL, 0, NULL, 0); String name = fname; files_sorted.insert(name); diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp index d8d3554612..14d713bb36 100644 --- a/editor/editor_export.cpp +++ b/editor/editor_export.cpp @@ -3323,22 +3323,22 @@ void EditorImportExport::_bind_methods() { - BIND_CONSTANT( ACTION_NONE ); - BIND_CONSTANT( ACTION_COPY ); - BIND_CONSTANT( ACTION_BUNDLE ); - - BIND_CONSTANT( EXPORT_SELECTED ); - BIND_CONSTANT( EXPORT_RESOURCES ); - BIND_CONSTANT( EXPORT_ALL ); - - BIND_CONSTANT( IMAGE_ACTION_NONE ); - BIND_CONSTANT( IMAGE_ACTION_COMPRESS_DISK ); - BIND_CONSTANT( IMAGE_ACTION_COMPRESS_RAM ); - BIND_CONSTANT( IMAGE_ACTION_KEEP ); - - BIND_CONSTANT( SCRIPT_ACTION_NONE ); - BIND_CONSTANT( SCRIPT_ACTION_COMPILE ); - BIND_CONSTANT( SCRIPT_ACTION_ENCRYPT ); + BIND_ENUM_CONSTANT( ACTION_NONE ); + BIND_ENUM_CONSTANT( ACTION_COPY ); + BIND_ENUM_CONSTANT( ACTION_BUNDLE ); + + BIND_ENUM_CONSTANT( EXPORT_SELECTED ); + BIND_ENUM_CONSTANT( EXPORT_RESOURCES ); + BIND_ENUM_CONSTANT( EXPORT_ALL ); + + BIND_ENUM_CONSTANT( IMAGE_ACTION_NONE ); + BIND_ENUM_CONSTANT( IMAGE_ACTION_COMPRESS_DISK ); + BIND_ENUM_CONSTANT( IMAGE_ACTION_COMPRESS_RAM ); + BIND_ENUM_CONSTANT( IMAGE_ACTION_KEEP ); + + BIND_ENUM_CONSTANT( SCRIPT_ACTION_NONE ); + BIND_ENUM_CONSTANT( SCRIPT_ACTION_COMPILE ); + BIND_ENUM_CONSTANT( SCRIPT_ACTION_ENCRYPT ); }; diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp index d572ee8724..26dbc27136 100644 --- a/editor/editor_file_dialog.cpp +++ b/editor/editor_file_dialog.cpp @@ -1187,15 +1187,15 @@ void EditorFileDialog::_bind_methods() { ADD_SIGNAL(MethodInfo("files_selected", PropertyInfo(Variant::POOL_STRING_ARRAY, "paths"))); ADD_SIGNAL(MethodInfo("dir_selected", PropertyInfo(Variant::STRING, "dir"))); - BIND_CONSTANT(MODE_OPEN_FILE); - BIND_CONSTANT(MODE_OPEN_FILES); - BIND_CONSTANT(MODE_OPEN_DIR); - BIND_CONSTANT(MODE_OPEN_ANY); - BIND_CONSTANT(MODE_SAVE_FILE); - - BIND_CONSTANT(ACCESS_RESOURCES); - BIND_CONSTANT(ACCESS_USERDATA); - BIND_CONSTANT(ACCESS_FILESYSTEM); + BIND_ENUM_CONSTANT(MODE_OPEN_FILE); + BIND_ENUM_CONSTANT(MODE_OPEN_FILES); + BIND_ENUM_CONSTANT(MODE_OPEN_DIR); + BIND_ENUM_CONSTANT(MODE_OPEN_ANY); + BIND_ENUM_CONSTANT(MODE_SAVE_FILE); + + BIND_ENUM_CONSTANT(ACCESS_RESOURCES); + BIND_ENUM_CONSTANT(ACCESS_USERDATA); + BIND_ENUM_CONSTANT(ACCESS_FILESYSTEM); } void EditorFileDialog::set_show_hidden_files(bool p_show) { diff --git a/editor/editor_node.h b/editor/editor_node.h index cf6ef33325..385d97ecc3 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -684,6 +684,8 @@ public: void merge_from_scene() { _menu_option_confirm(FILE_IMPORT_SUBSCENE, false); } + void show_about() { _menu_option_confirm(HELP_ABOUT, false); } + static bool has_unsaved_changes() { return singleton->unsaved_cache; } static HBoxContainer *get_menu_hb() { return singleton->menu_hb; } diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp index d8c8d419b9..f8ed18bba4 100644 --- a/editor/editor_plugin.cpp +++ b/editor/editor_plugin.cpp @@ -468,23 +468,23 @@ void EditorPlugin::_bind_methods() { ADD_SIGNAL(MethodInfo("scene_closed", PropertyInfo(Variant::STRING, "filepath:String"))); ADD_SIGNAL(MethodInfo("main_screen_changed", PropertyInfo(Variant::STRING, "screen_name:String"))); - BIND_CONSTANT(CONTAINER_TOOLBAR); - BIND_CONSTANT(CONTAINER_SPATIAL_EDITOR_MENU); - BIND_CONSTANT(CONTAINER_SPATIAL_EDITOR_SIDE); - BIND_CONSTANT(CONTAINER_SPATIAL_EDITOR_BOTTOM); - BIND_CONSTANT(CONTAINER_CANVAS_EDITOR_MENU); - BIND_CONSTANT(CONTAINER_CANVAS_EDITOR_SIDE); - BIND_CONSTANT(CONTAINER_PROPERTY_EDITOR_BOTTOM); - - BIND_CONSTANT(DOCK_SLOT_LEFT_UL); - BIND_CONSTANT(DOCK_SLOT_LEFT_BL); - BIND_CONSTANT(DOCK_SLOT_LEFT_UR); - BIND_CONSTANT(DOCK_SLOT_LEFT_BR); - BIND_CONSTANT(DOCK_SLOT_RIGHT_UL); - BIND_CONSTANT(DOCK_SLOT_RIGHT_BL); - BIND_CONSTANT(DOCK_SLOT_RIGHT_UR); - BIND_CONSTANT(DOCK_SLOT_RIGHT_BR); - BIND_CONSTANT(DOCK_SLOT_MAX); + BIND_ENUM_CONSTANT(CONTAINER_TOOLBAR); + BIND_ENUM_CONSTANT(CONTAINER_SPATIAL_EDITOR_MENU); + BIND_ENUM_CONSTANT(CONTAINER_SPATIAL_EDITOR_SIDE); + BIND_ENUM_CONSTANT(CONTAINER_SPATIAL_EDITOR_BOTTOM); + BIND_ENUM_CONSTANT(CONTAINER_CANVAS_EDITOR_MENU); + BIND_ENUM_CONSTANT(CONTAINER_CANVAS_EDITOR_SIDE); + BIND_ENUM_CONSTANT(CONTAINER_PROPERTY_EDITOR_BOTTOM); + + BIND_ENUM_CONSTANT(DOCK_SLOT_LEFT_UL); + BIND_ENUM_CONSTANT(DOCK_SLOT_LEFT_BL); + BIND_ENUM_CONSTANT(DOCK_SLOT_LEFT_UR); + BIND_ENUM_CONSTANT(DOCK_SLOT_LEFT_BR); + BIND_ENUM_CONSTANT(DOCK_SLOT_RIGHT_UL); + BIND_ENUM_CONSTANT(DOCK_SLOT_RIGHT_BL); + BIND_ENUM_CONSTANT(DOCK_SLOT_RIGHT_UR); + BIND_ENUM_CONSTANT(DOCK_SLOT_RIGHT_BR); + BIND_ENUM_CONSTANT(DOCK_SLOT_MAX); } EditorPlugin::EditorPlugin() { diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index 5c8e166730..358d575764 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -593,6 +593,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { hints["text_editor/theme/color_theme"] = PropertyInfo(Variant::STRING, "text_editor/theme/color_theme", PROPERTY_HINT_ENUM, "Default"); set("text_editor/theme/line_spacing", 4); + set("text_editor/theme/adapted_code_editor_background_color", true); _load_default_text_editor_theme(); diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index 9f6416f4e6..4f1e6c1771 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -86,19 +86,6 @@ static Ref<StyleBoxFlat> change_border_color(Ref<StyleBoxFlat> p_style, Color p_ return style; } -static Ref<StyleBoxFlat> add_additional_border(Ref<StyleBoxFlat> p_style, int p_left, int p_top, int p_right, int p_bottom) { - Ref<StyleBoxFlat> style = p_style->duplicate(); - style->set_border_width(MARGIN_LEFT, p_left * EDSCALE + style->get_border_width(MARGIN_LEFT)); - style->set_border_width(MARGIN_RIGHT, p_right * EDSCALE + style->get_border_width(MARGIN_RIGHT)); - style->set_border_width(MARGIN_TOP, p_top * EDSCALE + style->get_border_width(MARGIN_TOP)); - style->set_border_width(MARGIN_BOTTOM, p_bottom * EDSCALE + style->get_border_width(MARGIN_BOTTOM)); - style->set_expand_margin_size(MARGIN_LEFT, p_left * EDSCALE); - style->set_expand_margin_size(MARGIN_RIGHT, p_right * EDSCALE); - style->set_expand_margin_size(MARGIN_TOP, p_top * EDSCALE); - style->set_expand_margin_size(MARGIN_BOTTOM, p_bottom * EDSCALE); - return style; -} - #define HIGHLIGHT_COLOR_LIGHT highlight_color.linear_interpolate(Color(1, 1, 1, 1), 0.3) #define HIGHLIGHT_COLOR_DARK highlight_color.linear_interpolate(Color(0, 0, 0, 1), 0.5) @@ -537,7 +524,8 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { // PopupPanel Ref<StyleBoxFlat> style_dock_select = make_flat_stylebox(base_color); style_dock_select->set_border_color_all(light_color_1); - style_dock_select = add_additional_border(style_dock_select, 2, 2, 2, 2); + style_dock_select->set_expand_margin_size_all(2); + style_dock_select->set_border_width_all(2); theme->set_stylebox("panel", "PopupPanel", style_dock_select); // SpinBox diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp index e6f15d1712..5ff9b795d7 100644 --- a/editor/export_template_manager.cpp +++ b/editor/export_template_manager.cpp @@ -195,7 +195,7 @@ void ExportTemplateManager::_install_from_file(const String &p_file) { data.resize(info.uncompressed_size); //read - ret = unzOpenCurrentFile(pkg); + unzOpenCurrentFile(pkg); ret = unzReadCurrentFile(pkg, data.ptr(), data.size()); unzCloseCurrentFile(pkg); @@ -257,7 +257,7 @@ void ExportTemplateManager::_install_from_file(const String &p_file) { //get filename unz_file_info info; char fname[16384]; - ret = unzGetCurrentFileInfo(pkg, &info, fname, 16384, NULL, 0, NULL, 0); + unzGetCurrentFileInfo(pkg, &info, fname, 16384, NULL, 0, NULL, 0); String file = fname; @@ -265,8 +265,8 @@ void ExportTemplateManager::_install_from_file(const String &p_file) { data.resize(info.uncompressed_size); //read - ret = unzOpenCurrentFile(pkg); - ret = unzReadCurrentFile(pkg, data.ptr(), data.size()); + unzOpenCurrentFile(pkg); + unzReadCurrentFile(pkg, data.ptr(), data.size()); unzCloseCurrentFile(pkg); print_line(fname); diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index 8e40850a0c..7413b05aac 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -1465,10 +1465,9 @@ void FileSystemDock::_files_list_rmb_select(int p_item, const Vector2 &p_pos) { return; } - EditorFileSystemDirectory *efsd = NULL; int pos; - efsd = EditorFileSystem::get_singleton()->find_file(path, &pos); + EditorFileSystemDirectory *efsd = EditorFileSystem::get_singleton()->find_file(path, &pos); if (efsd) { diff --git a/editor/icons/SCsub b/editor/icons/SCsub index 564188f315..86c51a50f3 100644 --- a/editor/icons/SCsub +++ b/editor/icons/SCsub @@ -88,5 +88,4 @@ make_editor_icons_builder = Builder(action=make_editor_icons_action, env['BUILDERS']['MakeEditorIconsBuilder'] = make_editor_icons_builder env.Alias('editor_icons', [env.MakeEditorIconsBuilder('#editor/editor_icons.gen.h', Glob("*.svg"))]) -env.editor_sources.append("#editor/editor_icons.gen.h") Export('env') diff --git a/editor/import/editor_import_collada.cpp b/editor/import/editor_import_collada.cpp index a75147a3a9..b3ccb5097e 100644 --- a/editor/import/editor_import_collada.cpp +++ b/editor/import/editor_import_collada.cpp @@ -1584,14 +1584,12 @@ Error ColladaImport::_create_resources(Collada::Node *p_node) { apply_xform = Transform(); } - Collada::SkinControllerData::Source *joint_src = NULL; - ERR_FAIL_COND_V(!skin->weights.sources.has("JOINT"), ERR_INVALID_DATA); String joint_id = skin->weights.sources["JOINT"].source; ERR_FAIL_COND_V(!skin->sources.has(joint_id), ERR_INVALID_DATA); - joint_src = &skin->sources[joint_id]; + Collada::SkinControllerData::Source *joint_src = &skin->sources[joint_id]; bone_remap.resize(joint_src->sarray.size()); @@ -2317,7 +2315,6 @@ Ref<Animation> EditorSceneImporterCollada::import_animation(const String &p_path if (state.animations.size() == 0) return Ref<Animation>(); Ref<Animation> anim = state.animations[0]; - anim = state.animations[0]; print_line("Anim Load OK"); String base = p_path.get_basename().to_lower(); if (p_flags & IMPORT_ANIMATION_DETECT_LOOP) { diff --git a/editor/plugins/particles_editor_plugin.cpp b/editor/plugins/particles_editor_plugin.cpp index d918a3e24e..1e3723a911 100644 --- a/editor/plugins/particles_editor_plugin.cpp +++ b/editor/plugins/particles_editor_plugin.cpp @@ -270,9 +270,7 @@ void ParticlesEditor::_generate_emission_points() { Vector3 dir; dir[Math::rand() % 3] = 1.0; - Vector3 ofs = Vector3(1, 1, 1) - dir; - ofs = (Vector3(1, 1, 1) - dir) * Vector3(Math::randf(), Math::randf(), Math::randf()) * aabb.size; - ofs += aabb.position; + Vector3 ofs = (Vector3(1, 1, 1) - dir) * Vector3(Math::randf(), Math::randf(), Math::randf()) * aabb.size + aabb.position; Vector3 ofsv = ofs + aabb.size * dir; diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index 7c504ecc03..e8770febd9 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -2072,7 +2072,10 @@ void ScriptEditor::_update_selected_editor_menu() { } } - EditorHelp *eh = tab_container->get_current_tab_control()->cast_to<EditorHelp>(); + EditorHelp *eh = NULL; + if (tab_container->get_current_tab_control()) + eh = tab_container->get_current_tab_control()->cast_to<EditorHelp>(); + if (eh) { script_search_menu->show(); } else { diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index 1a3092b6e4..19de027287 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -75,9 +75,14 @@ void ScriptTextEditor::_load_theme_settings() { text_edit->clear_colors(); - /* keyword color */ + /* color from color_theme or from editor color */ + + Color background_color = EDITOR_DEF("text_editor/highlighting/background_color", Color(0, 0, 0, 0)); + if (EDITOR_DEF("text_editor/theme/adapted_code_editor_background_color", false)) + background_color = get_color("dark_color_1", "Editor"); - text_edit->add_color_override("background_color", EDITOR_DEF("text_editor/highlighting/background_color", Color(0, 0, 0, 0))); + /* keyword color */ + text_edit->add_color_override("background_color", background_color); text_edit->add_color_override("completion_background_color", EDITOR_DEF("text_editor/highlighting/completion_background_color", Color(0, 0, 0, 0))); text_edit->add_color_override("completion_selected_color", EDITOR_DEF("text_editor/highlighting/completion_selected_color", Color::html("434244"))); text_edit->add_color_override("completion_existing_color", EDITOR_DEF("text_editor/highlighting/completion_existing_color", Color::html("21dfdfdf"))); diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp index 0748c43b5f..299538a2b3 100644 --- a/editor/script_create_dialog.cpp +++ b/editor/script_create_dialog.cpp @@ -531,28 +531,19 @@ void ScriptCreateDialog::_bind_methods() { ScriptCreateDialog::ScriptCreateDialog() { - GridContainer *gc = memnew(GridContainer); - VBoxContainer *vb = memnew(VBoxContainer); - HBoxContainer *hb = memnew(HBoxContainer); - Label *l = memnew(Label); - Control *empty = memnew(Control); - Control *empty_h = memnew(Control); - Control *empty_v = memnew(Control); - PanelContainer *pc = memnew(PanelContainer); - /* DIALOG */ /* Main Controls */ - gc = memnew(GridContainer); + GridContainer *gc = memnew(GridContainer); gc->set_columns(2); /* Error Messages Field */ - vb = memnew(VBoxContainer); + VBoxContainer *vb = memnew(VBoxContainer); - hb = memnew(HBoxContainer); - l = memnew(Label); + HBoxContainer *hb = memnew(HBoxContainer); + Label *l = memnew(Label); l->set_text(" - "); hb->add_child(l); error_label = memnew(Label); @@ -571,19 +562,19 @@ ScriptCreateDialog::ScriptCreateDialog() { hb->add_child(path_error_label); vb->add_child(hb); - pc = memnew(PanelContainer); + PanelContainer *pc = memnew(PanelContainer); pc->set_h_size_flags(Control::SIZE_FILL); pc->add_style_override("panel", EditorNode::get_singleton()->get_gui_base()->get_stylebox("bg", "Tree")); pc->add_child(vb); /* Margins */ - empty_h = memnew(Control); + Control *empty_h = memnew(Control); empty_h->set_name("empty_h"); //duplicate() doesn't like nodes without a name empty_h->set_h_size_flags(Control::SIZE_EXPAND_FILL); empty_h->set_v_size_flags(Control::SIZE_EXPAND_FILL); empty_h->set_custom_minimum_size(Size2(0, 10 * EDSCALE)); - empty_v = memnew(Control); + Control *empty_v = memnew(Control); empty_v->set_name("empty_v"); empty_v->set_h_size_flags(Control::SIZE_EXPAND_FILL); empty_v->set_v_size_flags(Control::SIZE_EXPAND_FILL); @@ -684,7 +675,7 @@ ScriptCreateDialog::ScriptCreateDialog() { internal = memnew(CheckButton); internal->connect("pressed", this, "_built_in_pressed"); hb = memnew(HBoxContainer); - empty = memnew(Control); + Control *empty = memnew(Control); hb->add_child(internal); hb->add_child(empty); l = memnew(Label); diff --git a/main/main.cpp b/main/main.cpp index e49c66dddf..0c6de4325c 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -904,9 +904,10 @@ Error Main::setup2() { MAIN_PRINT("Main: Setup Logo"); - bool show_logo = true; #ifdef JAVASCRIPT_ENABLED - show_logo = false; + bool show_logo = false; +#else + bool show_logo = true; #endif if (init_screen != -1) { diff --git a/main/performance.cpp b/main/performance.cpp index 3d8e21bf33..091c52118c 100644 --- a/main/performance.cpp +++ b/main/performance.cpp @@ -40,35 +40,35 @@ void Performance::_bind_methods() { ClassDB::bind_method(D_METHOD("get_monitor", "monitor"), &Performance::get_monitor); - BIND_CONSTANT(TIME_FPS); - BIND_CONSTANT(TIME_PROCESS); - BIND_CONSTANT(TIME_FIXED_PROCESS); - BIND_CONSTANT(MEMORY_STATIC); - BIND_CONSTANT(MEMORY_DYNAMIC); - BIND_CONSTANT(MEMORY_STATIC_MAX); - BIND_CONSTANT(MEMORY_DYNAMIC_MAX); - BIND_CONSTANT(MEMORY_MESSAGE_BUFFER_MAX); - BIND_CONSTANT(OBJECT_COUNT); - BIND_CONSTANT(OBJECT_RESOURCE_COUNT); - BIND_CONSTANT(OBJECT_NODE_COUNT); - BIND_CONSTANT(RENDER_OBJECTS_IN_FRAME); - BIND_CONSTANT(RENDER_VERTICES_IN_FRAME); - BIND_CONSTANT(RENDER_MATERIAL_CHANGES_IN_FRAME); - BIND_CONSTANT(RENDER_SHADER_CHANGES_IN_FRAME); - BIND_CONSTANT(RENDER_SURFACE_CHANGES_IN_FRAME); - BIND_CONSTANT(RENDER_DRAW_CALLS_IN_FRAME); - BIND_CONSTANT(RENDER_USAGE_VIDEO_MEM_TOTAL); - BIND_CONSTANT(RENDER_VIDEO_MEM_USED); - BIND_CONSTANT(RENDER_TEXTURE_MEM_USED); - BIND_CONSTANT(RENDER_VERTEX_MEM_USED); - BIND_CONSTANT(PHYSICS_2D_ACTIVE_OBJECTS); - BIND_CONSTANT(PHYSICS_2D_COLLISION_PAIRS); - BIND_CONSTANT(PHYSICS_2D_ISLAND_COUNT); - BIND_CONSTANT(PHYSICS_3D_ACTIVE_OBJECTS); - BIND_CONSTANT(PHYSICS_3D_COLLISION_PAIRS); - BIND_CONSTANT(PHYSICS_3D_ISLAND_COUNT); - - BIND_CONSTANT(MONITOR_MAX); + BIND_ENUM_CONSTANT(TIME_FPS); + BIND_ENUM_CONSTANT(TIME_PROCESS); + BIND_ENUM_CONSTANT(TIME_FIXED_PROCESS); + BIND_ENUM_CONSTANT(MEMORY_STATIC); + BIND_ENUM_CONSTANT(MEMORY_DYNAMIC); + BIND_ENUM_CONSTANT(MEMORY_STATIC_MAX); + BIND_ENUM_CONSTANT(MEMORY_DYNAMIC_MAX); + BIND_ENUM_CONSTANT(MEMORY_MESSAGE_BUFFER_MAX); + BIND_ENUM_CONSTANT(OBJECT_COUNT); + BIND_ENUM_CONSTANT(OBJECT_RESOURCE_COUNT); + BIND_ENUM_CONSTANT(OBJECT_NODE_COUNT); + BIND_ENUM_CONSTANT(RENDER_OBJECTS_IN_FRAME); + BIND_ENUM_CONSTANT(RENDER_VERTICES_IN_FRAME); + BIND_ENUM_CONSTANT(RENDER_MATERIAL_CHANGES_IN_FRAME); + BIND_ENUM_CONSTANT(RENDER_SHADER_CHANGES_IN_FRAME); + BIND_ENUM_CONSTANT(RENDER_SURFACE_CHANGES_IN_FRAME); + BIND_ENUM_CONSTANT(RENDER_DRAW_CALLS_IN_FRAME); + BIND_ENUM_CONSTANT(RENDER_USAGE_VIDEO_MEM_TOTAL); + BIND_ENUM_CONSTANT(RENDER_VIDEO_MEM_USED); + BIND_ENUM_CONSTANT(RENDER_TEXTURE_MEM_USED); + BIND_ENUM_CONSTANT(RENDER_VERTEX_MEM_USED); + BIND_ENUM_CONSTANT(PHYSICS_2D_ACTIVE_OBJECTS); + BIND_ENUM_CONSTANT(PHYSICS_2D_COLLISION_PAIRS); + BIND_ENUM_CONSTANT(PHYSICS_2D_ISLAND_COUNT); + BIND_ENUM_CONSTANT(PHYSICS_3D_ACTIVE_OBJECTS); + BIND_ENUM_CONSTANT(PHYSICS_3D_COLLISION_PAIRS); + BIND_ENUM_CONSTANT(PHYSICS_3D_ISLAND_COUNT); + + BIND_ENUM_CONSTANT(MONITOR_MAX); } String Performance::get_monitor_name(Monitor p_monitor) const { diff --git a/main/tests/test_string.cpp b/main/tests/test_string.cpp index 5531b71c96..0ff84a8286 100644 --- a/main/tests/test_string.cpp +++ b/main/tests/test_string.cpp @@ -802,7 +802,6 @@ bool test_28() { bool test_29() { bool state = true; - bool success = false; IP_Address ip0("2001:0db8:85a3:0000:0000:8a2e:0370:7334"); OS::get_singleton()->print("ip0 is %ls\n", String(ip0).c_str()); @@ -817,7 +816,7 @@ bool test_29() { OS::get_singleton()->print("ip6 is %ls\n", String(ip3).c_str()); String ip4 = "192.168.0.1"; - success = ip4.is_valid_ip_address(); + bool success = ip4.is_valid_ip_address(); OS::get_singleton()->print("Is valid ipv4: %ls, %s\n", ip4.c_str(), success ? "OK" : "FAIL"); if (!success) state = false; diff --git a/modules/enet/networked_multiplayer_enet.cpp b/modules/enet/networked_multiplayer_enet.cpp index 68d5c9e611..c76e0c6675 100644 --- a/modules/enet/networked_multiplayer_enet.cpp +++ b/modules/enet/networked_multiplayer_enet.cpp @@ -658,11 +658,11 @@ void NetworkedMultiplayerENet::_bind_methods() { ClassDB::bind_method(D_METHOD("get_compression_mode"), &NetworkedMultiplayerENet::get_compression_mode); ClassDB::bind_method(D_METHOD("set_bind_ip", "ip"), &NetworkedMultiplayerENet::set_bind_ip); - BIND_CONSTANT(COMPRESS_NONE); - BIND_CONSTANT(COMPRESS_RANGE_CODER); - BIND_CONSTANT(COMPRESS_FASTLZ); - BIND_CONSTANT(COMPRESS_ZLIB); - BIND_CONSTANT(COMPRESS_ZSTD); + BIND_ENUM_CONSTANT(COMPRESS_NONE); + BIND_ENUM_CONSTANT(COMPRESS_RANGE_CODER); + BIND_ENUM_CONSTANT(COMPRESS_FASTLZ); + BIND_ENUM_CONSTANT(COMPRESS_ZLIB); + BIND_ENUM_CONSTANT(COMPRESS_ZSTD); } NetworkedMultiplayerENet::NetworkedMultiplayerENet() { diff --git a/modules/gdnative/gdnative.cpp b/modules/gdnative/gdnative.cpp index fc4fc5c10d..ccc7e5f2da 100644 --- a/modules/gdnative/gdnative.cpp +++ b/modules/gdnative/gdnative.cpp @@ -247,9 +247,8 @@ bool GDNative::terminate() { return false; } - Error error = OK; void *library_terminate; - error = OS::get_singleton()->get_dynamic_library_symbol_handle( + Error error = OS::get_singleton()->get_dynamic_library_symbol_handle( native_handle, terminate_symbol, library_terminate); diff --git a/modules/gdscript/gd_compiler.cpp b/modules/gdscript/gd_compiler.cpp index d4ede4cb17..c243f88b7a 100644 --- a/modules/gdscript/gd_compiler.cpp +++ b/modules/gdscript/gd_compiler.cpp @@ -1451,15 +1451,13 @@ Error GDCompiler::_parse_function(GDScript *p_script, const GDParser::ClassNode codegen.opcodes.push_back(GDFunction::OPCODE_END); - GDFunction *gdfunc = NULL; - /* if (String(p_func->name)=="") { //initializer func gdfunc = &p_script->initializer; */ //} else { //regular func p_script->member_functions[func_name] = memnew(GDFunction); - gdfunc = p_script->member_functions[func_name]; + GDFunction *gdfunc = p_script->member_functions[func_name]; //} if (p_func) { diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp index 9023fd4bf4..7d3857266e 100644 --- a/modules/gdscript/gd_parser.cpp +++ b/modules/gdscript/gd_parser.cpp @@ -2381,9 +2381,7 @@ void GDParser::_parse_block(BlockNode *p_block, bool p_static) { if (tokenizer->get_token() == GDTokenizer::TK_OP_ASSIGN) { tokenizer->advance(); - Node *subexpr = NULL; - - subexpr = _parse_and_reduce_expression(p_block, p_static); + Node *subexpr = _parse_and_reduce_expression(p_block, p_static); if (!subexpr) { if (_recover_from_completion()) { break; @@ -3135,9 +3133,7 @@ void GDParser::_parse_class(ClassNode *p_class) { if (tokenizer->get_token() == GDTokenizer::TK_OP_ASSIGN) { defaulting = true; tokenizer->advance(1); - Node *defval = NULL; - - defval = _parse_and_reduce_expression(p_class, _static); + Node *defval = _parse_and_reduce_expression(p_class, _static); if (!defval || error_set) return; @@ -3875,9 +3871,7 @@ void GDParser::_parse_class(ClassNode *p_class) { #endif tokenizer->advance(); - Node *subexpr = NULL; - - subexpr = _parse_and_reduce_expression(p_class, false, autoexport); + Node *subexpr = _parse_and_reduce_expression(p_class, false, autoexport); if (!subexpr) { if (_recover_from_completion()) { break; @@ -4035,9 +4029,7 @@ void GDParser::_parse_class(ClassNode *p_class) { tokenizer->advance(); - Node *subexpr = NULL; - - subexpr = _parse_and_reduce_expression(p_class, true, true); + Node *subexpr = _parse_and_reduce_expression(p_class, true, true); if (!subexpr) { if (_recover_from_completion()) { break; @@ -4103,9 +4095,7 @@ void GDParser::_parse_class(ClassNode *p_class) { if (tokenizer->get_token() == GDTokenizer::TK_OP_ASSIGN) { tokenizer->advance(); - Node *subexpr = NULL; - - subexpr = _parse_and_reduce_expression(p_class, true, true); + Node *subexpr = _parse_and_reduce_expression(p_class, true, true); if (!subexpr) { if (_recover_from_completion()) { break; diff --git a/modules/gdscript/gd_tokenizer.cpp b/modules/gdscript/gd_tokenizer.cpp index 5803046185..f70982d7c0 100644 --- a/modules/gdscript/gd_tokenizer.cpp +++ b/modules/gdscript/gd_tokenizer.cpp @@ -1187,9 +1187,7 @@ Error GDTokenizerBuffer::set_code_buffer(const Vector<uint8_t> &p_buffer) { int line_count = decode_uint32(&buf[16]); int token_count = decode_uint32(&buf[20]); - const uint8_t *b = buf; - - b = &buf[24]; + const uint8_t *b = &buf[24]; total_len -= 24; identifiers.resize(identifier_count); diff --git a/modules/nativescript/api_generator.cpp b/modules/nativescript/api_generator.cpp index 47162bfc49..d9e78ba54a 100644 --- a/modules/nativescript/api_generator.cpp +++ b/modules/nativescript/api_generator.cpp @@ -155,10 +155,9 @@ List<ClassAPI> generate_c_api_classes() { class_api.is_instanciable = !class_api.is_singleton && ClassDB::can_instance(class_name); { - bool is_reference = false; List<StringName> inheriters; ClassDB::get_inheriters_from_class("Reference", &inheriters); - is_reference = !!inheriters.find(class_name); + bool is_reference = !!inheriters.find(class_name); // @Unclear class_api.is_reference = !class_api.is_singleton && is_reference; } diff --git a/modules/openssl/stream_peer_openssl.cpp b/modules/openssl/stream_peer_openssl.cpp index 7a9d5195a9..8c5e6f83c3 100644 --- a/modules/openssl/stream_peer_openssl.cpp +++ b/modules/openssl/stream_peer_openssl.cpp @@ -41,27 +41,22 @@ bool StreamPeerOpenSSL::_match_host_name(const char *name, const char *hostname) Error StreamPeerOpenSSL::_match_common_name(const char *hostname, const X509 *server_cert) { - int common_name_loc = -1; - X509_NAME_ENTRY *common_name_entry = NULL; - ASN1_STRING *common_name_asn1 = NULL; - char *common_name_str = NULL; - // Find the position of the CN field in the Subject field of the certificate - common_name_loc = X509_NAME_get_index_by_NID(X509_get_subject_name((X509 *)server_cert), NID_commonName, -1); + int common_name_loc = X509_NAME_get_index_by_NID(X509_get_subject_name((X509 *)server_cert), NID_commonName, -1); ERR_FAIL_COND_V(common_name_loc < 0, ERR_INVALID_PARAMETER); // Extract the CN field - common_name_entry = X509_NAME_get_entry(X509_get_subject_name((X509 *)server_cert), common_name_loc); + X509_NAME_ENTRY *common_name_entry = X509_NAME_get_entry(X509_get_subject_name((X509 *)server_cert), common_name_loc); ERR_FAIL_COND_V(common_name_entry == NULL, ERR_INVALID_PARAMETER); // Convert the CN field to a C string - common_name_asn1 = X509_NAME_ENTRY_get_data(common_name_entry); + ASN1_STRING *common_name_asn1 = X509_NAME_ENTRY_get_data(common_name_entry); ERR_FAIL_COND_V(common_name_asn1 == NULL, ERR_INVALID_PARAMETER); - common_name_str = (char *)ASN1_STRING_data(common_name_asn1); + char *common_name_str = (char *)ASN1_STRING_data(common_name_asn1); // Make sure there isn't an embedded NUL character in the CN bool malformed_certificate = (size_t)ASN1_STRING_length(common_name_asn1) != strlen(common_name_str); diff --git a/modules/pbm/bitmap_loader_pbm.cpp b/modules/pbm/bitmap_loader_pbm.cpp index c8f25ad68c..93dedbd05f 100644 --- a/modules/pbm/bitmap_loader_pbm.cpp +++ b/modules/pbm/bitmap_loader_pbm.cpp @@ -95,6 +95,9 @@ static bool _get_token(FileAccessRef &f, uint8_t &saved, PoolVector<uint8_t> &r_ resized = true; } if (resized) { + // Note: Certain C++ static analyzers might point out that the following assigment is unnecessary. + // This is wrong since PoolVector<class T>::Write has an operator= method where the lhs gets updated under certain conditions. + // See core/dvector.h. w = PoolVector<uint8_t>::Write(); r_token.resize(token_max); w = r_token.write(); diff --git a/modules/theora/video_stream_theora.cpp b/modules/theora/video_stream_theora.cpp index 977062dd14..a83d3ead0e 100644 --- a/modules/theora/video_stream_theora.cpp +++ b/modules/theora/video_stream_theora.cpp @@ -451,7 +451,6 @@ void VideoStreamPlaybackTheora::set_file(const String &p_file) { ti.frame_width, ti.frame_height, ti.pic_x, ti.pic_y); th_decode_ctl(td, TH_DECCTL_GET_PPLEVEL_MAX, &pp_level_max, sizeof(pp_level_max)); - pp_level = pp_level_max; pp_level = 0; th_decode_ctl(td, TH_DECCTL_SET_PPLEVEL, &pp_level, sizeof(pp_level)); pp_inc = 0; diff --git a/modules/visual_script/visual_script_func_nodes.cpp b/modules/visual_script/visual_script_func_nodes.cpp index e94bb8fba5..47cdfff494 100644 --- a/modules/visual_script/visual_script_func_nodes.cpp +++ b/modules/visual_script/visual_script_func_nodes.cpp @@ -747,10 +747,10 @@ void VisualScriptFunctionCall::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "validate"), "set_validate", "get_validate"); ADD_PROPERTY(PropertyInfo(Variant::INT, "rpc_call_mode", PROPERTY_HINT_ENUM, "Disabled,Reliable,Unreliable,ReliableToID,UnreliableToID"), "set_rpc_call_mode", "get_rpc_call_mode"); //when set, if loaded properly, will override argument count. - BIND_CONSTANT(CALL_MODE_SELF); - BIND_CONSTANT(CALL_MODE_NODE_PATH); - BIND_CONSTANT(CALL_MODE_INSTANCE); - BIND_CONSTANT(CALL_MODE_BASIC_TYPE); + BIND_ENUM_CONSTANT(CALL_MODE_SELF); + BIND_ENUM_CONSTANT(CALL_MODE_NODE_PATH); + BIND_ENUM_CONSTANT(CALL_MODE_INSTANCE); + BIND_ENUM_CONSTANT(CALL_MODE_BASIC_TYPE); } class VisualScriptNodeInstanceFunctionCall : public VisualScriptNodeInstance { @@ -1490,9 +1490,10 @@ void VisualScriptPropertySet::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::STRING, "property"), "set_property", "get_property"); ADD_PROPERTY(PropertyInfo(Variant::STRING, "index"), "set_index", "get_index"); ADD_PROPERTY(PropertyInfo(Variant::INT, "assign_op", PROPERTY_HINT_ENUM, "Assign,Add,Sub,Mul,Div,Mod,ShiftLeft,ShiftRight,BitAnd,BitOr,Bitxor"), "set_assign_op", "get_assign_op"); - BIND_CONSTANT(CALL_MODE_SELF); - BIND_CONSTANT(CALL_MODE_NODE_PATH); - BIND_CONSTANT(CALL_MODE_INSTANCE); + + BIND_ENUM_CONSTANT(CALL_MODE_SELF); + BIND_ENUM_CONSTANT(CALL_MODE_NODE_PATH); + BIND_ENUM_CONSTANT(CALL_MODE_INSTANCE); } class VisualScriptNodeInstancePropertySet : public VisualScriptNodeInstance { @@ -2202,9 +2203,9 @@ void VisualScriptPropertyGet::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::STRING, "property"), "set_property", "get_property"); ADD_PROPERTY(PropertyInfo(Variant::STRING, "index", PROPERTY_HINT_ENUM), "set_index", "get_index"); - BIND_CONSTANT(CALL_MODE_SELF); - BIND_CONSTANT(CALL_MODE_NODE_PATH); - BIND_CONSTANT(CALL_MODE_INSTANCE); + BIND_ENUM_CONSTANT(CALL_MODE_SELF); + BIND_ENUM_CONSTANT(CALL_MODE_NODE_PATH); + BIND_ENUM_CONSTANT(CALL_MODE_INSTANCE); } class VisualScriptNodeInstancePropertyGet : public VisualScriptNodeInstance { diff --git a/modules/visual_script/visual_script_nodes.cpp b/modules/visual_script/visual_script_nodes.cpp index 4f9cd4a33b..15e25c99ee 100644 --- a/modules/visual_script/visual_script_nodes.cpp +++ b/modules/visual_script/visual_script_nodes.cpp @@ -2712,9 +2712,9 @@ void VisualScriptCustomNode::_bind_methods() { ClassDB::bind_method(D_METHOD("_script_changed"), &VisualScriptCustomNode::_script_changed); - BIND_CONSTANT(START_MODE_BEGIN_SEQUENCE); - BIND_CONSTANT(START_MODE_CONTINUE_SEQUENCE); - BIND_CONSTANT(START_MODE_RESUME_YIELD); + BIND_ENUM_CONSTANT(START_MODE_BEGIN_SEQUENCE); + BIND_ENUM_CONSTANT(START_MODE_CONTINUE_SEQUENCE); + BIND_ENUM_CONSTANT(START_MODE_RESUME_YIELD); BIND_CONSTANT(STEP_PUSH_STACK_BIT); BIND_CONSTANT(STEP_GO_BACK_BIT); diff --git a/modules/visual_script/visual_script_nodes.h b/modules/visual_script/visual_script_nodes.h index 6ce906efe0..b5df761e7d 100644 --- a/modules/visual_script/visual_script_nodes.h +++ b/modules/visual_script/visual_script_nodes.h @@ -727,6 +727,8 @@ public: VisualScriptCustomNode(); }; +VARIANT_ENUM_CAST(VisualScriptCustomNode::StartMode); + class VisualScriptSubCall : public VisualScriptNode { GDCLASS(VisualScriptSubCall, VisualScriptNode) diff --git a/modules/visual_script/visual_script_yield_nodes.cpp b/modules/visual_script/visual_script_yield_nodes.cpp index 2e111511b7..df88d2e7f7 100644 --- a/modules/visual_script/visual_script_yield_nodes.cpp +++ b/modules/visual_script/visual_script_yield_nodes.cpp @@ -189,9 +189,9 @@ void VisualScriptYield::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "mode", PROPERTY_HINT_ENUM, "Frame,FixedFrame,Time", PROPERTY_USAGE_NOEDITOR), "set_yield_mode", "get_yield_mode"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "wait_time"), "set_wait_time", "get_wait_time"); - BIND_CONSTANT(YIELD_FRAME); - BIND_CONSTANT(YIELD_FIXED_FRAME); - BIND_CONSTANT(YIELD_WAIT); + BIND_ENUM_CONSTANT(YIELD_FRAME); + BIND_ENUM_CONSTANT(YIELD_FIXED_FRAME); + BIND_ENUM_CONSTANT(YIELD_WAIT); } VisualScriptYield::VisualScriptYield() { @@ -493,9 +493,9 @@ void VisualScriptYieldSignal::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::NODE_PATH, "node_path", PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE), "set_base_path", "get_base_path"); ADD_PROPERTY(PropertyInfo(Variant::STRING, "signal"), "set_signal", "get_signal"); - BIND_CONSTANT(CALL_MODE_SELF); - BIND_CONSTANT(CALL_MODE_NODE_PATH); - BIND_CONSTANT(CALL_MODE_INSTANCE); + BIND_ENUM_CONSTANT(CALL_MODE_SELF); + BIND_ENUM_CONSTANT(CALL_MODE_NODE_PATH); + BIND_ENUM_CONSTANT(CALL_MODE_INSTANCE); } class VisualScriptNodeInstanceYieldSignal : public VisualScriptNodeInstance { diff --git a/platform/android/audio_driver_jandroid.cpp b/platform/android/audio_driver_jandroid.cpp index 763eff2863..ec09fda429 100644 --- a/platform/android/audio_driver_jandroid.cpp +++ b/platform/android/audio_driver_jandroid.cpp @@ -80,7 +80,6 @@ Error AudioDriverAndroid::init() { int mix_rate = GLOBAL_DEF("audio/mix_rate", 44100); int latency = GLOBAL_DEF("audio/output_latency", 25); - latency = 50; unsigned int buffer_size = next_power_of_2(latency * mix_rate / 1000); if (OS::get_singleton()->is_stdout_verbose()) { print_line("audio buffer size: " + itos(buffer_size)); diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index ee93c29577..ada7df887c 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -3024,7 +3024,7 @@ public: args.push_back(devices[p_device].id); args.push_back("reverse"); args.push_back("--remove-all"); - err = OS::get_singleton()->execute(adb, args, true, NULL, NULL, &rv); + OS::get_singleton()->execute(adb, args, true, NULL, NULL, &rv); int dbg_port = EditorSettings::get_singleton()->get("network/debug/remote_port"); args.clear(); @@ -3034,7 +3034,7 @@ public: args.push_back("tcp:" + itos(dbg_port)); args.push_back("tcp:" + itos(dbg_port)); - err = OS::get_singleton()->execute(adb, args, true, NULL, NULL, &rv); + OS::get_singleton()->execute(adb, args, true, NULL, NULL, &rv); print_line("Reverse result: " + itos(rv)); int fs_port = EditorSettings::get_singleton()->get("filesystem/file_server/port"); diff --git a/platform/haiku/os_haiku.h b/platform/haiku/os_haiku.h index 256c9eecf7..4440f2843d 100644 --- a/platform/haiku/os_haiku.h +++ b/platform/haiku/os_haiku.h @@ -96,8 +96,8 @@ public: virtual int get_screen_count() const; virtual int get_current_screen() const; virtual void set_current_screen(int p_screen); - virtual Point2 get_screen_position(int p_screen = 0) const; - virtual Size2 get_screen_size(int p_screen = 0) const; + virtual Point2 get_screen_position(int p_screen = -1) const; + virtual Size2 get_screen_size(int p_screen = -1) const; virtual void set_window_title(const String &p_title); virtual Size2 get_window_size() const; virtual void set_window_size(const Size2 p_size); diff --git a/platform/iphone/audio_driver_iphone.cpp b/platform/iphone/audio_driver_iphone.cpp index 57b6388016..d8374147c8 100644 --- a/platform/iphone/audio_driver_iphone.cpp +++ b/platform/iphone/audio_driver_iphone.cpp @@ -46,10 +46,8 @@ Error AudioDriverIphone::init() { strdesc.mBytesPerPacket = strdesc.mBytesPerFrame * strdesc.mFramesPerPacket; - OSStatus result = noErr; AURenderCallbackStruct callback; AudioComponentDescription desc; - AudioComponent comp = NULL; const AudioUnitElement output_bus = 0; const AudioUnitElement bus = output_bus; const AudioUnitScope scope = kAudioUnitScope_Input; @@ -57,10 +55,10 @@ Error AudioDriverIphone::init() { zeromem(&desc, sizeof(desc)); desc.componentType = kAudioUnitType_Output; desc.componentSubType = kAudioUnitSubType_RemoteIO; /* !!! FIXME: ? */ - comp = AudioComponentFindNext(NULL, &desc); + AudioComponent comp = AudioComponentFindNext(NULL, &desc); desc.componentManufacturer = kAudioUnitManufacturer_Apple; - result = AudioComponentInstanceNew(comp, &audio_unit); + OSStatus result = AudioComponentInstanceNew(comp, &audio_unit); ERR_FAIL_COND_V(result != noErr, FAILED); ERR_FAIL_COND_V(comp == NULL, FAILED); diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp index d339baf024..f49acb04de 100644 --- a/platform/javascript/os_javascript.cpp +++ b/platform/javascript/os_javascript.cpp @@ -687,8 +687,6 @@ OS::VideoMode OS_JavaScript::get_video_mode(int p_screen) const { Size2 OS_JavaScript::get_screen_size(int p_screen) const { - ERR_FAIL_COND_V(p_screen != 0, Size2()); - EmscriptenFullscreenChangeEvent ev; EMSCRIPTEN_RESULT result = emscripten_get_fullscreen_status(&ev); ERR_FAIL_COND_V(result != EMSCRIPTEN_RESULT_SUCCESS, Size2()); diff --git a/platform/javascript/os_javascript.h b/platform/javascript/os_javascript.h index 13c500b3dc..ff484204c7 100644 --- a/platform/javascript/os_javascript.h +++ b/platform/javascript/os_javascript.h @@ -124,7 +124,7 @@ public: virtual VideoMode get_video_mode(int p_screen = 0) const; virtual void get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen = 0) const; - virtual Size2 get_screen_size(int p_screen = 0) const; + virtual Size2 get_screen_size(int p_screen = -1) const; virtual void set_window_size(const Size2); virtual Size2 get_window_size() const; diff --git a/platform/osx/joypad_osx.cpp b/platform/osx/joypad_osx.cpp index 1a4b3a460e..96c660ad1d 100644 --- a/platform/osx/joypad_osx.cpp +++ b/platform/osx/joypad_osx.cpp @@ -217,10 +217,9 @@ static void joypad_added_callback(void *ctx, IOReturn res, void *sender, IOHIDDe } static bool is_joypad(IOHIDDeviceRef p_device_ref) { - CFTypeRef refCF = NULL; int usage_page = 0; int usage = 0; - refCF = IOHIDDeviceGetProperty(p_device_ref, CFSTR(kIOHIDPrimaryUsagePageKey)); + CFTypeRef refCF = IOHIDDeviceGetProperty(p_device_ref, CFSTR(kIOHIDPrimaryUsagePageKey)); if (refCF) { CFNumberGetValue((CFNumberRef)refCF, kCFNumberSInt32Type, &usage_page); } @@ -289,13 +288,11 @@ static String _hex_str(uint8_t p_byte) { bool JoypadOSX::configure_joypad(IOHIDDeviceRef p_device_ref, joypad *p_joy) { - CFTypeRef refCF = NULL; - p_joy->device_ref = p_device_ref; /* get device name */ String name; char c_name[256]; - refCF = IOHIDDeviceGetProperty(p_device_ref, CFSTR(kIOHIDProductKey)); + CFTypeRef refCF = IOHIDDeviceGetProperty(p_device_ref, CFSTR(kIOHIDProductKey)); if (!refCF) { refCF = IOHIDDeviceGetProperty(p_device_ref, CFSTR(kIOHIDManufacturerKey)); } @@ -334,8 +331,7 @@ bool JoypadOSX::configure_joypad(IOHIDDeviceRef p_device_ref, joypad *p_joy) { input->joy_connection_changed(id, true, name, guid); } - CFArrayRef array = NULL; - array = IOHIDDeviceCopyMatchingElements(p_device_ref, NULL, kIOHIDOptionsTypeNone); + CFArrayRef array = IOHIDDeviceCopyMatchingElements(p_device_ref, NULL, kIOHIDOptionsTypeNone); if (array) { p_joy->add_hid_elements(array); CFRelease(array); diff --git a/platform/osx/os_osx.h b/platform/osx/os_osx.h index 56e6802eeb..827114cd2b 100644 --- a/platform/osx/os_osx.h +++ b/platform/osx/os_osx.h @@ -187,9 +187,9 @@ public: virtual int get_screen_count() const; virtual int get_current_screen() const; virtual void set_current_screen(int p_screen); - virtual Point2 get_screen_position(int p_screen = 0) const; - virtual Size2 get_screen_size(int p_screen = 0) const; - virtual int get_screen_dpi(int p_screen = 0) const; + virtual Point2 get_screen_position(int p_screen = -1) const; + virtual Size2 get_screen_size(int p_screen = -1) const; + virtual int get_screen_dpi(int p_screen = -1) const; virtual Point2 get_window_position() const; virtual void set_window_position(const Point2 &p_position); diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index 33b1e64dd4..a0fc53d517 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -137,6 +137,11 @@ static bool mouse_down_control = false; //_GodotInputMonitorChange(); } +- (void)showAbout:(id)sender { + if (OS_OSX::singleton->get_main_loop()) + OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_ABOUT); +} + @end @interface GodotWindowDelegate : NSObject { @@ -1428,6 +1433,10 @@ void OS_OSX::set_current_screen(int p_screen) { }; Point2 OS_OSX::get_screen_position(int p_screen) const { + if (p_screen == -1) { + p_screen = get_current_screen(); + } + NSArray *screenArray = [NSScreen screens]; if (p_screen < [screenArray count]) { float displayScale = 1.0; @@ -1444,6 +1453,10 @@ Point2 OS_OSX::get_screen_position(int p_screen) const { } int OS_OSX::get_screen_dpi(int p_screen) const { + if (p_screen == -1) { + p_screen = get_current_screen(); + } + NSArray *screenArray = [NSScreen screens]; if (p_screen < [screenArray count]) { float displayScale = 1.0; @@ -1464,6 +1477,10 @@ int OS_OSX::get_screen_dpi(int p_screen) const { } Size2 OS_OSX::get_screen_size(int p_screen) const { + if (p_screen == -1) { + p_screen = get_current_screen(); + } + NSArray *screenArray = [NSScreen screens]; if (p_screen < [screenArray count]) { float displayScale = 1.0; @@ -1902,7 +1919,7 @@ OS_OSX::OS_OSX() { // Setup Apple menu NSMenu *apple_menu = [[NSMenu alloc] initWithTitle:@""]; title = [NSString stringWithFormat:NSLocalizedString(@"About %@", nil), nsappname]; - [apple_menu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; + [apple_menu addItemWithTitle:title action:@selector(showAbout:) keyEquivalent:@""]; [apple_menu addItem:[NSMenuItem separatorItem]]; diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index 72f6068eb6..db453a5f46 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -716,8 +716,7 @@ LRESULT OS_Windows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) } break; case WM_DROPFILES: { - HDROP hDropInfo = NULL; - hDropInfo = (HDROP)wParam; + HDROP hDropInfo = (HDROP)wParam; const int buffsize = 4096; wchar_t buf[buffsize]; @@ -1385,7 +1384,7 @@ static BOOL CALLBACK _MonitorEnumProcPos(HMONITOR hMonitor, HDC hdcMonitor, LPRE Point2 OS_Windows::get_screen_position(int p_screen) const { - EnumPosData data = { 0, p_screen, Point2() }; + EnumPosData data = { 0, p_screen == -1 ? get_current_screen() : p_screen, Point2() }; EnumDisplayMonitors(NULL, NULL, _MonitorEnumProcPos, (LPARAM)&data); return data.pos; } @@ -1410,7 +1409,7 @@ static BOOL CALLBACK _MonitorEnumProcSize(HMONITOR hMonitor, HDC hdcMonitor, LPR Size2 OS_Windows::get_screen_size(int p_screen) const { - EnumSizeData data = { 0, p_screen, Size2() }; + EnumSizeData data = { 0, p_screen == -1 ? get_current_screen() : p_screen, Size2() }; EnumDisplayMonitors(NULL, NULL, _MonitorEnumProcSize, (LPARAM)&data); return data.size; } @@ -1434,7 +1433,7 @@ static BOOL CALLBACK _MonitorEnumProcDpi(HMONITOR hMonitor, HDC hdcMonitor, LPRE int OS_Windows::get_screen_dpi(int p_screen) const { - EnumDpiData data = { 0, p_screen, 72 }; + EnumDpiData data = { 0, p_screen == -1 ? get_current_screen() : p_screen, 72 }; EnumDisplayMonitors(NULL, NULL, _MonitorEnumProcDpi, (LPARAM)&data); return data.dpi; } diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h index e9af14f11c..deb1ae0982 100644 --- a/platform/windows/os_windows.h +++ b/platform/windows/os_windows.h @@ -194,9 +194,9 @@ public: virtual int get_screen_count() const; virtual int get_current_screen() const; virtual void set_current_screen(int p_screen); - virtual Point2 get_screen_position(int p_screen = 0) const; - virtual Size2 get_screen_size(int p_screen = 0) const; - virtual int get_screen_dpi(int p_screen = 0) const; + virtual Point2 get_screen_position(int p_screen = -1) const; + virtual Size2 get_screen_size(int p_screen = -1) const; + virtual int get_screen_dpi(int p_screen = -1) const; virtual Point2 get_window_position() const; virtual void set_window_position(const Point2 &p_position); diff --git a/platform/x11/context_gl_x11.cpp b/platform/x11/context_gl_x11.cpp index f055d730db..563f7db5c3 100644 --- a/platform/x11/context_gl_x11.cpp +++ b/platform/x11/context_gl_x11.cpp @@ -98,11 +98,9 @@ static void set_class_hint(Display *p_display, Window p_window) { Error ContextGL_X11::initialize() { - GLXCREATECONTEXTATTRIBSARBPROC glXCreateContextAttribsARB = NULL; - //const char *extensions = glXQueryExtensionsString(x11_display, DefaultScreen(x11_display)); - glXCreateContextAttribsARB = (GLXCREATECONTEXTATTRIBSARBPROC)glXGetProcAddress((const GLubyte *)"glXCreateContextAttribsARB"); + GLXCREATECONTEXTATTRIBSARBPROC glXCreateContextAttribsARB = (GLXCREATECONTEXTATTRIBSARBPROC)glXGetProcAddress((const GLubyte *)"glXCreateContextAttribsARB"); ERR_FAIL_COND_V(!glXCreateContextAttribsARB, ERR_UNCONFIGURED); diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index a23f2f1320..dbc3914410 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -191,8 +191,7 @@ void OS_X11::initialize(const VideoMode &p_desired, int p_video_driver, int p_au ::XIMStyles *xim_styles = NULL; xim_style = 0L; - char *imvalret = NULL; - imvalret = XGetIMValues(xim, XNQueryInputStyle, &xim_styles, NULL); + char *imvalret = XGetIMValues(xim, XNQueryInputStyle, &xim_styles, NULL); if (imvalret != NULL || xim_styles == NULL) { fprintf(stderr, "Input method doesn't support any styles\n"); } @@ -762,6 +761,10 @@ void OS_X11::set_current_screen(int p_screen) { } Point2 OS_X11::get_screen_position(int p_screen) const { + if (p_screen == -1) { + p_screen = get_current_screen(); + } + // Using Xinerama Extension int event_base, error_base; const Bool ext_okay = XineramaQueryExtension(x11_display, &event_base, &error_base); @@ -783,6 +786,10 @@ Point2 OS_X11::get_screen_position(int p_screen) const { } Size2 OS_X11::get_screen_size(int p_screen) const { + if (p_screen == -1) { + p_screen = get_current_screen(); + } + // Using Xinerama Extension int event_base, error_base; const Bool ext_okay = XineramaQueryExtension(x11_display, &event_base, &error_base); @@ -798,6 +805,9 @@ Size2 OS_X11::get_screen_size(int p_screen) const { } int OS_X11::get_screen_dpi(int p_screen) const { + if (p_screen == -1) { + p_screen = get_current_screen(); + } //invalid screen? ERR_FAIL_INDEX_V(p_screen, get_screen_count(), 0); @@ -2140,8 +2150,7 @@ bool OS_X11::is_vsync_enabled() const { void OS_X11::set_context(int p_context) { - XClassHint *classHint = NULL; - classHint = XAllocClassHint(); + XClassHint *classHint = XAllocClassHint(); if (classHint) { if (p_context == CONTEXT_EDITOR) diff --git a/platform/x11/os_x11.h b/platform/x11/os_x11.h index db70f8f84a..497ce1dde2 100644 --- a/platform/x11/os_x11.h +++ b/platform/x11/os_x11.h @@ -233,9 +233,9 @@ public: virtual int get_screen_count() const; virtual int get_current_screen() const; virtual void set_current_screen(int p_screen); - virtual Point2 get_screen_position(int p_screen = 0) const; - virtual Size2 get_screen_size(int p_screen = 0) const; - virtual int get_screen_dpi(int p_screen = 0) const; + virtual Point2 get_screen_position(int p_screen = -1) const; + virtual Size2 get_screen_size(int p_screen = -1) const; + virtual int get_screen_dpi(int p_screen = -1) const; virtual Point2 get_window_position() const; virtual void set_window_position(const Point2 &p_position); virtual Size2 get_window_size() const; diff --git a/scene/2d/back_buffer_copy.cpp b/scene/2d/back_buffer_copy.cpp index 748a527ca0..44bee20d0a 100644 --- a/scene/2d/back_buffer_copy.cpp +++ b/scene/2d/back_buffer_copy.cpp @@ -85,9 +85,9 @@ void BackBufferCopy::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "copy_mode", PROPERTY_HINT_ENUM, "Disabled,Rect,Viewport"), "set_copy_mode", "get_copy_mode"); ADD_PROPERTY(PropertyInfo(Variant::RECT2, "rect"), "set_rect", "get_rect"); - BIND_CONSTANT(COPY_MODE_DISABLED); - BIND_CONSTANT(COPY_MODE_RECT); - BIND_CONSTANT(COPY_MODE_VIEWPORT); + BIND_ENUM_CONSTANT(COPY_MODE_DISABLED); + BIND_ENUM_CONSTANT(COPY_MODE_RECT); + BIND_ENUM_CONSTANT(COPY_MODE_VIEWPORT); } BackBufferCopy::BackBufferCopy() { diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp index 07c3099a72..f309631715 100644 --- a/scene/2d/camera_2d.cpp +++ b/scene/2d/camera_2d.cpp @@ -735,8 +735,8 @@ void Camera2D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "editor_draw_limits"), "set_limit_drawing_enabled", "is_limit_drawing_enabled"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "editor_draw_drag_margin"), "set_margin_drawing_enabled", "is_margin_drawing_enabled"); - BIND_CONSTANT(ANCHOR_MODE_DRAG_CENTER); - BIND_CONSTANT(ANCHOR_MODE_FIXED_TOP_LEFT); + BIND_ENUM_CONSTANT(ANCHOR_MODE_DRAG_CENTER); + BIND_ENUM_CONSTANT(ANCHOR_MODE_FIXED_TOP_LEFT); } Camera2D::Camera2D() { diff --git a/scene/2d/canvas_item.cpp b/scene/2d/canvas_item.cpp index cdd8fdf350..5a519dee69 100644 --- a/scene/2d/canvas_item.cpp +++ b/scene/2d/canvas_item.cpp @@ -188,14 +188,15 @@ void CanvasItemMaterial::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "blend_mode", PROPERTY_HINT_ENUM, "Mix,Add,Sub,Mul,Premult Alpha"), "set_blend_mode", "get_blend_mode"); ADD_PROPERTY(PropertyInfo(Variant::INT, "light_mode", PROPERTY_HINT_ENUM, "Normal,Unshaded,Light Only"), "set_light_mode", "get_light_mode"); - BIND_CONSTANT(BLEND_MODE_MIX); - BIND_CONSTANT(BLEND_MODE_ADD); - BIND_CONSTANT(BLEND_MODE_SUB); - BIND_CONSTANT(BLEND_MODE_MUL); - BIND_CONSTANT(BLEND_MODE_PREMULT_ALPHA); - BIND_CONSTANT(LIGHT_MODE_NORMAL); - BIND_CONSTANT(LIGHT_MODE_UNSHADED); - BIND_CONSTANT(LIGHT_MODE_LIGHT_ONLY); + BIND_ENUM_CONSTANT(BLEND_MODE_MIX); + BIND_ENUM_CONSTANT(BLEND_MODE_ADD); + BIND_ENUM_CONSTANT(BLEND_MODE_SUB); + BIND_ENUM_CONSTANT(BLEND_MODE_MUL); + BIND_ENUM_CONSTANT(BLEND_MODE_PREMULT_ALPHA); + + BIND_ENUM_CONSTANT(LIGHT_MODE_NORMAL); + BIND_ENUM_CONSTANT(LIGHT_MODE_UNSHADED); + BIND_ENUM_CONSTANT(LIGHT_MODE_LIGHT_ONLY); } CanvasItemMaterial::CanvasItemMaterial() @@ -1042,11 +1043,11 @@ void CanvasItem::_bind_methods() { ADD_SIGNAL(MethodInfo("hide")); ADD_SIGNAL(MethodInfo("item_rect_changed")); - BIND_CONSTANT(BLEND_MODE_MIX); - BIND_CONSTANT(BLEND_MODE_ADD); - BIND_CONSTANT(BLEND_MODE_SUB); - BIND_CONSTANT(BLEND_MODE_MUL); - BIND_CONSTANT(BLEND_MODE_PREMULT_ALPHA); + BIND_ENUM_CONSTANT(BLEND_MODE_MIX); + BIND_ENUM_CONSTANT(BLEND_MODE_ADD); + BIND_ENUM_CONSTANT(BLEND_MODE_SUB); + BIND_ENUM_CONSTANT(BLEND_MODE_MUL); + BIND_ENUM_CONSTANT(BLEND_MODE_PREMULT_ALPHA); BIND_CONSTANT(NOTIFICATION_DRAW); BIND_CONSTANT(NOTIFICATION_VISIBILITY_CHANGED); diff --git a/scene/2d/light_2d.cpp b/scene/2d/light_2d.cpp index 2b11913ddf..219574cbfd 100644 --- a/scene/2d/light_2d.cpp +++ b/scene/2d/light_2d.cpp @@ -439,10 +439,10 @@ void Light2D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::REAL, "shadow_filter_smooth", PROPERTY_HINT_RANGE, "0,64,0.1"), "set_shadow_smooth", "get_shadow_smooth"); ADD_PROPERTY(PropertyInfo(Variant::INT, "shadow_item_cull_mask", PROPERTY_HINT_LAYERS_2D_RENDER), "set_item_shadow_cull_mask", "get_item_shadow_cull_mask"); - BIND_CONSTANT(MODE_ADD); - BIND_CONSTANT(MODE_SUB); - BIND_CONSTANT(MODE_MIX); - BIND_CONSTANT(MODE_MASK); + BIND_ENUM_CONSTANT(MODE_ADD); + BIND_ENUM_CONSTANT(MODE_SUB); + BIND_ENUM_CONSTANT(MODE_MIX); + BIND_ENUM_CONSTANT(MODE_MASK); } Light2D::Light2D() { diff --git a/scene/2d/light_occluder_2d.cpp b/scene/2d/light_occluder_2d.cpp index e926ca0fe1..680adeea69 100644 --- a/scene/2d/light_occluder_2d.cpp +++ b/scene/2d/light_occluder_2d.cpp @@ -89,9 +89,9 @@ void OccluderPolygon2D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "cull_mode", PROPERTY_HINT_ENUM, "Disabled,ClockWise,CounterClockWise"), "set_cull_mode", "get_cull_mode"); ADD_PROPERTY(PropertyInfo(Variant::POOL_VECTOR2_ARRAY, "polygon"), "set_polygon", "get_polygon"); - BIND_CONSTANT(CULL_DISABLED); - BIND_CONSTANT(CULL_CLOCKWISE); - BIND_CONSTANT(CULL_COUNTER_CLOCKWISE); + BIND_ENUM_CONSTANT(CULL_DISABLED); + BIND_ENUM_CONSTANT(CULL_CLOCKWISE); + BIND_ENUM_CONSTANT(CULL_COUNTER_CLOCKWISE); } OccluderPolygon2D::OccluderPolygon2D() { diff --git a/scene/2d/line_2d.cpp b/scene/2d/line_2d.cpp index 5438557d0b..6e7bfe63c8 100644 --- a/scene/2d/line_2d.cpp +++ b/scene/2d/line_2d.cpp @@ -322,16 +322,16 @@ void Line2D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::REAL, "sharp_limit"), "set_sharp_limit", "get_sharp_limit"); ADD_PROPERTY(PropertyInfo(Variant::INT, "round_precision"), "set_round_precision", "get_round_precision"); - BIND_CONSTANT(LINE_JOINT_SHARP); - BIND_CONSTANT(LINE_JOINT_BEVEL); - BIND_CONSTANT(LINE_JOINT_ROUND); + BIND_ENUM_CONSTANT(LINE_JOINT_SHARP); + BIND_ENUM_CONSTANT(LINE_JOINT_BEVEL); + BIND_ENUM_CONSTANT(LINE_JOINT_ROUND); - BIND_CONSTANT(LINE_CAP_NONE); - BIND_CONSTANT(LINE_CAP_BOX); - BIND_CONSTANT(LINE_CAP_ROUND); + BIND_ENUM_CONSTANT(LINE_CAP_NONE); + BIND_ENUM_CONSTANT(LINE_CAP_BOX); + BIND_ENUM_CONSTANT(LINE_CAP_ROUND); - BIND_CONSTANT(LINE_TEXTURE_NONE); - BIND_CONSTANT(LINE_TEXTURE_TILE); + BIND_ENUM_CONSTANT(LINE_TEXTURE_NONE); + BIND_ENUM_CONSTANT(LINE_TEXTURE_TILE); ClassDB::bind_method(D_METHOD("_gradient_changed"), &Line2D::_gradient_changed); } diff --git a/scene/2d/parallax_layer.cpp b/scene/2d/parallax_layer.cpp index a5a59252a9..4b62d70648 100644 --- a/scene/2d/parallax_layer.cpp +++ b/scene/2d/parallax_layer.cpp @@ -34,6 +34,9 @@ void ParallaxLayer::set_motion_scale(const Size2 &p_scale) { + if (!get_parent()) + return; + motion_scale = p_scale; ParallaxBackground *pb = get_parent()->cast_to<ParallaxBackground>(); @@ -51,6 +54,9 @@ Size2 ParallaxLayer::get_motion_scale() const { void ParallaxLayer::set_motion_offset(const Size2 &p_offset) { + if (!get_parent()) + return; + motion_offset = p_offset; ParallaxBackground *pb = get_parent()->cast_to<ParallaxBackground>(); diff --git a/scene/2d/particles_2d.cpp b/scene/2d/particles_2d.cpp index 40c16e5062..b0c00c4a64 100644 --- a/scene/2d/particles_2d.cpp +++ b/scene/2d/particles_2d.cpp @@ -389,8 +389,8 @@ void Particles2D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "h_frames", PROPERTY_HINT_RANGE, "1,1024,1"), "set_h_frames", "get_h_frames"); ADD_PROPERTY(PropertyInfo(Variant::INT, "v_frames", PROPERTY_HINT_RANGE, "1,1024,1"), "set_v_frames", "get_v_frames"); - BIND_CONSTANT(DRAW_ORDER_INDEX); - BIND_CONSTANT(DRAW_ORDER_LIFETIME); + BIND_ENUM_CONSTANT(DRAW_ORDER_INDEX); + BIND_ENUM_CONSTANT(DRAW_ORDER_LIFETIME); } Particles2D::Particles2D() { diff --git a/scene/2d/physics_body_2d.cpp b/scene/2d/physics_body_2d.cpp index 3fd442429d..aaba9da299 100644 --- a/scene/2d/physics_body_2d.cpp +++ b/scene/2d/physics_body_2d.cpp @@ -933,14 +933,14 @@ void RigidBody2D::_bind_methods() { ADD_SIGNAL(MethodInfo("body_exited", PropertyInfo(Variant::OBJECT, "body"))); ADD_SIGNAL(MethodInfo("sleeping_state_changed")); - BIND_CONSTANT(MODE_STATIC); - BIND_CONSTANT(MODE_KINEMATIC); - BIND_CONSTANT(MODE_RIGID); - BIND_CONSTANT(MODE_CHARACTER); - - BIND_CONSTANT(CCD_MODE_DISABLED); - BIND_CONSTANT(CCD_MODE_CAST_RAY); - BIND_CONSTANT(CCD_MODE_CAST_SHAPE); + BIND_ENUM_CONSTANT(MODE_STATIC); + BIND_ENUM_CONSTANT(MODE_KINEMATIC); + BIND_ENUM_CONSTANT(MODE_RIGID); + BIND_ENUM_CONSTANT(MODE_CHARACTER); + + BIND_ENUM_CONSTANT(CCD_MODE_DISABLED); + BIND_ENUM_CONSTANT(CCD_MODE_CAST_RAY); + BIND_ENUM_CONSTANT(CCD_MODE_CAST_SHAPE); } RigidBody2D::RigidBody2D() diff --git a/scene/2d/polygon_2d.cpp b/scene/2d/polygon_2d.cpp index 7e2d6d1b5a..cde5724069 100644 --- a/scene/2d/polygon_2d.cpp +++ b/scene/2d/polygon_2d.cpp @@ -143,9 +143,7 @@ void Polygon2D::_notification(int p_what) { Transform2D texmat(tex_rot, tex_ofs); texmat.scale(tex_scale); - Size2 tex_size = Vector2(1, 1); - - tex_size = texture->get_size(); + Size2 tex_size = texture->get_size(); uvs.resize(points.size()); if (points.size() == uv.size()) { diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp index 68b026b1b3..5d246e331f 100644 --- a/scene/2d/tile_map.cpp +++ b/scene/2d/tile_map.cpp @@ -1315,15 +1315,18 @@ void TileMap::_bind_methods() { ADD_SIGNAL(MethodInfo("settings_changed")); BIND_CONSTANT(INVALID_CELL); - BIND_CONSTANT(MODE_SQUARE); - BIND_CONSTANT(MODE_ISOMETRIC); - BIND_CONSTANT(MODE_CUSTOM); - BIND_CONSTANT(HALF_OFFSET_X); - BIND_CONSTANT(HALF_OFFSET_Y); - BIND_CONSTANT(HALF_OFFSET_DISABLED); - BIND_CONSTANT(TILE_ORIGIN_TOP_LEFT); - BIND_CONSTANT(TILE_ORIGIN_CENTER); - BIND_CONSTANT(TILE_ORIGIN_BOTTOM_LEFT); + + BIND_ENUM_CONSTANT(MODE_SQUARE); + BIND_ENUM_CONSTANT(MODE_ISOMETRIC); + BIND_ENUM_CONSTANT(MODE_CUSTOM); + + BIND_ENUM_CONSTANT(HALF_OFFSET_X); + BIND_ENUM_CONSTANT(HALF_OFFSET_Y); + BIND_ENUM_CONSTANT(HALF_OFFSET_DISABLED); + + BIND_ENUM_CONSTANT(TILE_ORIGIN_TOP_LEFT); + BIND_ENUM_CONSTANT(TILE_ORIGIN_CENTER); + BIND_ENUM_CONSTANT(TILE_ORIGIN_BOTTOM_LEFT); } TileMap::TileMap() { diff --git a/scene/2d/visibility_notifier_2d.cpp b/scene/2d/visibility_notifier_2d.cpp index 54861bbe89..2f2ad08f01 100644 --- a/scene/2d/visibility_notifier_2d.cpp +++ b/scene/2d/visibility_notifier_2d.cpp @@ -341,13 +341,13 @@ void VisibilityEnabler2D::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "process_parent"), "set_enabler", "is_enabler_enabled", ENABLER_PARENT_PROCESS); ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "fixed_process_parent"), "set_enabler", "is_enabler_enabled", ENABLER_PARENT_FIXED_PROCESS); - BIND_CONSTANT(ENABLER_FREEZE_BODIES); - BIND_CONSTANT(ENABLER_PAUSE_ANIMATIONS); - BIND_CONSTANT(ENABLER_PAUSE_PARTICLES); - BIND_CONSTANT(ENABLER_PAUSE_ANIMATED_SPRITES); - BIND_CONSTANT(ENABLER_PARENT_PROCESS); - BIND_CONSTANT(ENABLER_PARENT_FIXED_PROCESS); - BIND_CONSTANT(ENABLER_MAX); + BIND_ENUM_CONSTANT(ENABLER_FREEZE_BODIES); + BIND_ENUM_CONSTANT(ENABLER_PAUSE_ANIMATIONS); + BIND_ENUM_CONSTANT(ENABLER_PAUSE_PARTICLES); + BIND_ENUM_CONSTANT(ENABLER_PAUSE_ANIMATED_SPRITES); + BIND_ENUM_CONSTANT(ENABLER_PARENT_PROCESS); + BIND_ENUM_CONSTANT(ENABLER_PARENT_FIXED_PROCESS); + BIND_ENUM_CONSTANT(ENABLER_MAX); } void VisibilityEnabler2D::set_enabler(Enabler p_enabler, bool p_enable) { diff --git a/scene/3d/audio_stream_player_3d.cpp b/scene/3d/audio_stream_player_3d.cpp index e86a07c60f..1ae6f552f4 100644 --- a/scene/3d/audio_stream_player_3d.cpp +++ b/scene/3d/audio_stream_player_3d.cpp @@ -888,16 +888,16 @@ void AudioStreamPlayer3D::_bind_methods() { ADD_GROUP("Doppler", "doppler_"); ADD_PROPERTY(PropertyInfo(Variant::INT, "doppler_tracking", PROPERTY_HINT_ENUM, "Disabled,Idle,Fixed"), "set_doppler_tracking", "get_doppler_tracking"); - BIND_CONSTANT(ATTENUATION_INVERSE_DISTANCE); - BIND_CONSTANT(ATTENUATION_INVERSE_SQUARE_DISTANCE); - BIND_CONSTANT(ATTENUATION_LOGARITHMIC); + BIND_ENUM_CONSTANT(ATTENUATION_INVERSE_DISTANCE); + BIND_ENUM_CONSTANT(ATTENUATION_INVERSE_SQUARE_DISTANCE); + BIND_ENUM_CONSTANT(ATTENUATION_LOGARITHMIC); - BIND_CONSTANT(OUT_OF_RANGE_MIX); - BIND_CONSTANT(OUT_OF_RANGE_PAUSE); + BIND_ENUM_CONSTANT(OUT_OF_RANGE_MIX); + BIND_ENUM_CONSTANT(OUT_OF_RANGE_PAUSE); - BIND_CONSTANT(DOPPLER_TRACKING_DISABLED); - BIND_CONSTANT(DOPPLER_TRACKING_IDLE_STEP); - BIND_CONSTANT(DOPPLER_TRACKING_FIXED_STEP); + BIND_ENUM_CONSTANT(DOPPLER_TRACKING_DISABLED); + BIND_ENUM_CONSTANT(DOPPLER_TRACKING_IDLE_STEP); + BIND_ENUM_CONSTANT(DOPPLER_TRACKING_FIXED_STEP); } AudioStreamPlayer3D::AudioStreamPlayer3D() { diff --git a/scene/3d/camera.cpp b/scene/3d/camera.cpp index 3c5eb21d38..9db7253fd6 100644 --- a/scene/3d/camera.cpp +++ b/scene/3d/camera.cpp @@ -564,15 +564,15 @@ void Camera::_bind_methods() { ClassDB::bind_method(D_METHOD("get_doppler_tracking"), &Camera::get_doppler_tracking); //ClassDB::bind_method(D_METHOD("_camera_make_current"),&Camera::_camera_make_current ); - BIND_CONSTANT(PROJECTION_PERSPECTIVE); - BIND_CONSTANT(PROJECTION_ORTHOGONAL); + BIND_ENUM_CONSTANT(PROJECTION_PERSPECTIVE); + BIND_ENUM_CONSTANT(PROJECTION_ORTHOGONAL); - BIND_CONSTANT(KEEP_WIDTH); - BIND_CONSTANT(KEEP_HEIGHT); + BIND_ENUM_CONSTANT(KEEP_WIDTH); + BIND_ENUM_CONSTANT(KEEP_HEIGHT); - BIND_CONSTANT(DOPPLER_TRACKING_DISABLED) - BIND_CONSTANT(DOPPLER_TRACKING_IDLE_STEP) - BIND_CONSTANT(DOPPLER_TRACKING_FIXED_STEP) + BIND_ENUM_CONSTANT(DOPPLER_TRACKING_DISABLED) + BIND_ENUM_CONSTANT(DOPPLER_TRACKING_IDLE_STEP) + BIND_ENUM_CONSTANT(DOPPLER_TRACKING_FIXED_STEP) } float Camera::get_fov() const { diff --git a/scene/3d/character_camera.cpp b/scene/3d/character_camera.cpp index 065e21fccd..ce047f91c2 100644 --- a/scene/3d/character_camera.cpp +++ b/scene/3d/character_camera.cpp @@ -659,8 +659,8 @@ void CharacterCamera::_bind_methods() { ClassDB::bind_method(D_METHOD("_ray_collision"),&CharacterCamera::_ray_collision); - BIND_CONSTANT( CAMERA_FIXED ); - BIND_CONSTANT( CAMERA_FOLLOW ); + BIND_ENUM_CONSTANT( CAMERA_FIXED ); + BIND_ENUM_CONSTANT( CAMERA_FOLLOW ); } void CharacterCamera::_ray_collision(Vector3 p_point, Vector3 p_normal, int p_subindex, ObjectID p_against,int p_idx) { diff --git a/scene/3d/gi_probe.cpp b/scene/3d/gi_probe.cpp index 2174f924ac..460580d4fe 100644 --- a/scene/3d/gi_probe.cpp +++ b/scene/3d/gi_probe.cpp @@ -1488,10 +1488,10 @@ void GIProbe::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "compress"), "set_compress", "is_compressed"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "data", PROPERTY_HINT_RESOURCE_TYPE, "GIProbeData"), "set_probe_data", "get_probe_data"); - BIND_CONSTANT(SUBDIV_64); - BIND_CONSTANT(SUBDIV_128); - BIND_CONSTANT(SUBDIV_256); - BIND_CONSTANT(SUBDIV_MAX); + BIND_ENUM_CONSTANT(SUBDIV_64); + BIND_ENUM_CONSTANT(SUBDIV_128); + BIND_ENUM_CONSTANT(SUBDIV_256); + BIND_ENUM_CONSTANT(SUBDIV_MAX); } GIProbe::GIProbe() { diff --git a/scene/3d/light.cpp b/scene/3d/light.cpp index b4a62138fb..f4b5cc5731 100644 --- a/scene/3d/light.cpp +++ b/scene/3d/light.cpp @@ -236,21 +236,21 @@ void Light::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "editor_only"), "set_editor_only", "is_editor_only"); ADD_GROUP("", ""); - BIND_CONSTANT(PARAM_ENERGY); - BIND_CONSTANT(PARAM_SPECULAR); - BIND_CONSTANT(PARAM_RANGE); - BIND_CONSTANT(PARAM_ATTENUATION); - BIND_CONSTANT(PARAM_SPOT_ANGLE); - BIND_CONSTANT(PARAM_SPOT_ATTENUATION); - BIND_CONSTANT(PARAM_CONTACT_SHADOW_SIZE); - BIND_CONSTANT(PARAM_SHADOW_MAX_DISTANCE); - BIND_CONSTANT(PARAM_SHADOW_SPLIT_1_OFFSET); - BIND_CONSTANT(PARAM_SHADOW_SPLIT_2_OFFSET); - BIND_CONSTANT(PARAM_SHADOW_SPLIT_3_OFFSET); - BIND_CONSTANT(PARAM_SHADOW_NORMAL_BIAS); - BIND_CONSTANT(PARAM_SHADOW_BIAS); - - BIND_CONSTANT(PARAM_MAX); + BIND_ENUM_CONSTANT(PARAM_ENERGY); + BIND_ENUM_CONSTANT(PARAM_SPECULAR); + BIND_ENUM_CONSTANT(PARAM_RANGE); + BIND_ENUM_CONSTANT(PARAM_ATTENUATION); + BIND_ENUM_CONSTANT(PARAM_SPOT_ANGLE); + BIND_ENUM_CONSTANT(PARAM_SPOT_ATTENUATION); + BIND_ENUM_CONSTANT(PARAM_CONTACT_SHADOW_SIZE); + BIND_ENUM_CONSTANT(PARAM_SHADOW_MAX_DISTANCE); + BIND_ENUM_CONSTANT(PARAM_SHADOW_SPLIT_1_OFFSET); + BIND_ENUM_CONSTANT(PARAM_SHADOW_SPLIT_2_OFFSET); + BIND_ENUM_CONSTANT(PARAM_SHADOW_SPLIT_3_OFFSET); + BIND_ENUM_CONSTANT(PARAM_SHADOW_NORMAL_BIAS); + BIND_ENUM_CONSTANT(PARAM_SHADOW_BIAS); + + BIND_ENUM_CONSTANT(PARAM_MAX); } Light::Light(VisualServer::LightType p_type) { @@ -335,9 +335,9 @@ void DirectionalLight::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "directional_shadow_blend_splits"), "set_blend_splits", "is_blend_splits_enabled"); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "directional_shadow_normal_bias", PROPERTY_HINT_RANGE, "0,16,0.01"), "set_param", "get_param", PARAM_SHADOW_NORMAL_BIAS); - BIND_CONSTANT(SHADOW_ORTHOGONAL); - BIND_CONSTANT(SHADOW_PARALLEL_2_SPLITS); - BIND_CONSTANT(SHADOW_PARALLEL_4_SPLITS); + BIND_ENUM_CONSTANT(SHADOW_ORTHOGONAL); + BIND_ENUM_CONSTANT(SHADOW_PARALLEL_2_SPLITS); + BIND_ENUM_CONSTANT(SHADOW_PARALLEL_4_SPLITS); } DirectionalLight::DirectionalLight() diff --git a/scene/3d/particles.cpp b/scene/3d/particles.cpp index e88a52c76a..70f46e3a0a 100644 --- a/scene/3d/particles.cpp +++ b/scene/3d/particles.cpp @@ -347,9 +347,10 @@ void Particles::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "draw_pass_" + itos(i + 1), PROPERTY_HINT_RESOURCE_TYPE, "Mesh"), "set_draw_pass_mesh", "get_draw_pass_mesh", i); } - BIND_CONSTANT(DRAW_ORDER_INDEX); - BIND_CONSTANT(DRAW_ORDER_LIFETIME); - BIND_CONSTANT(DRAW_ORDER_VIEW_DEPTH); + BIND_ENUM_CONSTANT(DRAW_ORDER_INDEX); + BIND_ENUM_CONSTANT(DRAW_ORDER_LIFETIME); + BIND_ENUM_CONSTANT(DRAW_ORDER_VIEW_DEPTH); + BIND_CONSTANT(MAX_DRAW_PASSES); } @@ -1487,29 +1488,29 @@ void ParticlesMaterial::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "anim_offset_curve", PROPERTY_HINT_RESOURCE_TYPE, "CurveTexture"), "set_param_texture", "get_param_texture", PARAM_ANIM_OFFSET); ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "anim_loop"), "set_flag", "get_flag", FLAG_ANIM_LOOP); - BIND_CONSTANT(PARAM_INITIAL_LINEAR_VELOCITY); - BIND_CONSTANT(PARAM_ANGULAR_VELOCITY); - BIND_CONSTANT(PARAM_ORBIT_VELOCITY); - BIND_CONSTANT(PARAM_LINEAR_ACCEL); - BIND_CONSTANT(PARAM_RADIAL_ACCEL); - BIND_CONSTANT(PARAM_TANGENTIAL_ACCEL); - BIND_CONSTANT(PARAM_DAMPING); - BIND_CONSTANT(PARAM_ANGLE); - BIND_CONSTANT(PARAM_SCALE); - BIND_CONSTANT(PARAM_HUE_VARIATION); - BIND_CONSTANT(PARAM_ANIM_SPEED); - BIND_CONSTANT(PARAM_ANIM_OFFSET); - BIND_CONSTANT(PARAM_MAX); - - BIND_CONSTANT(FLAG_ALIGN_Y_TO_VELOCITY); - BIND_CONSTANT(FLAG_ROTATE_Y); - BIND_CONSTANT(FLAG_MAX); - - BIND_CONSTANT(EMISSION_SHAPE_POINT); - BIND_CONSTANT(EMISSION_SHAPE_SPHERE); - BIND_CONSTANT(EMISSION_SHAPE_BOX); - BIND_CONSTANT(EMISSION_SHAPE_POINTS); - BIND_CONSTANT(EMISSION_SHAPE_DIRECTED_POINTS); + BIND_ENUM_CONSTANT(PARAM_INITIAL_LINEAR_VELOCITY); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_VELOCITY); + BIND_ENUM_CONSTANT(PARAM_ORBIT_VELOCITY); + BIND_ENUM_CONSTANT(PARAM_LINEAR_ACCEL); + BIND_ENUM_CONSTANT(PARAM_RADIAL_ACCEL); + BIND_ENUM_CONSTANT(PARAM_TANGENTIAL_ACCEL); + BIND_ENUM_CONSTANT(PARAM_DAMPING); + BIND_ENUM_CONSTANT(PARAM_ANGLE); + BIND_ENUM_CONSTANT(PARAM_SCALE); + BIND_ENUM_CONSTANT(PARAM_HUE_VARIATION); + BIND_ENUM_CONSTANT(PARAM_ANIM_SPEED); + BIND_ENUM_CONSTANT(PARAM_ANIM_OFFSET); + BIND_ENUM_CONSTANT(PARAM_MAX); + + BIND_ENUM_CONSTANT(FLAG_ALIGN_Y_TO_VELOCITY); + BIND_ENUM_CONSTANT(FLAG_ROTATE_Y); + BIND_ENUM_CONSTANT(FLAG_MAX); + + BIND_ENUM_CONSTANT(EMISSION_SHAPE_POINT); + BIND_ENUM_CONSTANT(EMISSION_SHAPE_SPHERE); + BIND_ENUM_CONSTANT(EMISSION_SHAPE_BOX); + BIND_ENUM_CONSTANT(EMISSION_SHAPE_POINTS); + BIND_ENUM_CONSTANT(EMISSION_SHAPE_DIRECTED_POINTS); } ParticlesMaterial::ParticlesMaterial() diff --git a/scene/3d/path.cpp b/scene/3d/path.cpp index c40f73541e..0ca7f96fd7 100644 --- a/scene/3d/path.cpp +++ b/scene/3d/path.cpp @@ -283,10 +283,10 @@ void PathFollow::_bind_methods() { ClassDB::bind_method(D_METHOD("set_loop", "loop"), &PathFollow::set_loop); ClassDB::bind_method(D_METHOD("has_loop"), &PathFollow::has_loop); - BIND_CONSTANT(ROTATION_NONE); - BIND_CONSTANT(ROTATION_Y); - BIND_CONSTANT(ROTATION_XY); - BIND_CONSTANT(ROTATION_XYZ); + BIND_ENUM_CONSTANT(ROTATION_NONE); + BIND_ENUM_CONSTANT(ROTATION_Y); + BIND_ENUM_CONSTANT(ROTATION_XY); + BIND_ENUM_CONSTANT(ROTATION_XYZ); } void PathFollow::set_offset(float p_offset) { diff --git a/scene/3d/physics_body.cpp b/scene/3d/physics_body.cpp index e1371e9ed6..402cd6314b 100644 --- a/scene/3d/physics_body.cpp +++ b/scene/3d/physics_body.cpp @@ -870,10 +870,10 @@ void RigidBody::_bind_methods() { ADD_SIGNAL(MethodInfo("body_exited", PropertyInfo(Variant::OBJECT, "body"))); ADD_SIGNAL(MethodInfo("sleeping_state_changed")); - BIND_CONSTANT(MODE_STATIC); - BIND_CONSTANT(MODE_KINEMATIC); - BIND_CONSTANT(MODE_RIGID); - BIND_CONSTANT(MODE_CHARACTER); + BIND_ENUM_CONSTANT(MODE_STATIC); + BIND_ENUM_CONSTANT(MODE_KINEMATIC); + BIND_ENUM_CONSTANT(MODE_RIGID); + BIND_ENUM_CONSTANT(MODE_CHARACTER); } RigidBody::RigidBody() diff --git a/scene/3d/physics_joint.cpp b/scene/3d/physics_joint.cpp index 61d496935b..55007c6dc6 100644 --- a/scene/3d/physics_joint.cpp +++ b/scene/3d/physics_joint.cpp @@ -188,9 +188,9 @@ void PinJoint::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::REAL, "params/damping", PROPERTY_HINT_RANGE, "0.01,8.0,0.01"), "set_param", "get_param", PARAM_DAMPING); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "params/impulse_clamp", PROPERTY_HINT_RANGE, "0.0,64.0,0.01"), "set_param", "get_param", PARAM_IMPULSE_CLAMP); - BIND_CONSTANT(PARAM_BIAS); - BIND_CONSTANT(PARAM_DAMPING); - BIND_CONSTANT(PARAM_IMPULSE_CLAMP); + BIND_ENUM_CONSTANT(PARAM_BIAS); + BIND_ENUM_CONSTANT(PARAM_DAMPING); + BIND_ENUM_CONSTANT(PARAM_IMPULSE_CLAMP); } void PinJoint::set_param(Param p_param, float p_value) { @@ -282,19 +282,19 @@ void HingeJoint::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::REAL, "motor/target_velocity", PROPERTY_HINT_RANGE, "0.01,4096,0.01"), "set_param", "get_param", PARAM_MOTOR_TARGET_VELOCITY); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "motor/max_impulse", PROPERTY_HINT_RANGE, "0.01,1024,0.01"), "set_param", "get_param", PARAM_MOTOR_MAX_IMPULSE); - BIND_CONSTANT(PARAM_BIAS); - BIND_CONSTANT(PARAM_LIMIT_UPPER); - BIND_CONSTANT(PARAM_LIMIT_LOWER); - BIND_CONSTANT(PARAM_LIMIT_BIAS); - BIND_CONSTANT(PARAM_LIMIT_SOFTNESS); - BIND_CONSTANT(PARAM_LIMIT_RELAXATION); - BIND_CONSTANT(PARAM_MOTOR_TARGET_VELOCITY); - BIND_CONSTANT(PARAM_MOTOR_MAX_IMPULSE); - BIND_CONSTANT(PARAM_MAX); + BIND_ENUM_CONSTANT(PARAM_BIAS); + BIND_ENUM_CONSTANT(PARAM_LIMIT_UPPER); + BIND_ENUM_CONSTANT(PARAM_LIMIT_LOWER); + BIND_ENUM_CONSTANT(PARAM_LIMIT_BIAS); + BIND_ENUM_CONSTANT(PARAM_LIMIT_SOFTNESS); + BIND_ENUM_CONSTANT(PARAM_LIMIT_RELAXATION); + BIND_ENUM_CONSTANT(PARAM_MOTOR_TARGET_VELOCITY); + BIND_ENUM_CONSTANT(PARAM_MOTOR_MAX_IMPULSE); + BIND_ENUM_CONSTANT(PARAM_MAX); - BIND_CONSTANT(FLAG_USE_LIMIT); - BIND_CONSTANT(FLAG_ENABLE_MOTOR); - BIND_CONSTANT(FLAG_MAX); + BIND_ENUM_CONSTANT(FLAG_USE_LIMIT); + BIND_ENUM_CONSTANT(FLAG_ENABLE_MOTOR); + BIND_ENUM_CONSTANT(FLAG_MAX); } void HingeJoint::set_param(Param p_param, float p_value) { @@ -428,31 +428,31 @@ void SliderJoint::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::REAL, "angular_ortho/restitution", PROPERTY_HINT_RANGE, "0.01,16.0,0.01"), "set_param", "get_param", PARAM_ANGULAR_ORTHOGONAL_RESTITUTION); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "angular_ortho/damping", PROPERTY_HINT_RANGE, "0,16.0,0.01"), "set_param", "get_param", PARAM_ANGULAR_ORTHOGONAL_DAMPING); - BIND_CONSTANT(PARAM_LINEAR_LIMIT_UPPER); - BIND_CONSTANT(PARAM_LINEAR_LIMIT_LOWER); - BIND_CONSTANT(PARAM_LINEAR_LIMIT_SOFTNESS); - BIND_CONSTANT(PARAM_LINEAR_LIMIT_RESTITUTION); - BIND_CONSTANT(PARAM_LINEAR_LIMIT_DAMPING); - BIND_CONSTANT(PARAM_LINEAR_MOTION_SOFTNESS); - BIND_CONSTANT(PARAM_LINEAR_MOTION_RESTITUTION); - BIND_CONSTANT(PARAM_LINEAR_MOTION_DAMPING); - BIND_CONSTANT(PARAM_LINEAR_ORTHOGONAL_SOFTNESS); - BIND_CONSTANT(PARAM_LINEAR_ORTHOGONAL_RESTITUTION); - BIND_CONSTANT(PARAM_LINEAR_ORTHOGONAL_DAMPING); - - BIND_CONSTANT(PARAM_ANGULAR_LIMIT_UPPER); - BIND_CONSTANT(PARAM_ANGULAR_LIMIT_LOWER); - BIND_CONSTANT(PARAM_ANGULAR_LIMIT_SOFTNESS); - BIND_CONSTANT(PARAM_ANGULAR_LIMIT_RESTITUTION); - BIND_CONSTANT(PARAM_ANGULAR_LIMIT_DAMPING); - BIND_CONSTANT(PARAM_ANGULAR_MOTION_SOFTNESS); - BIND_CONSTANT(PARAM_ANGULAR_MOTION_RESTITUTION); - BIND_CONSTANT(PARAM_ANGULAR_MOTION_DAMPING); - BIND_CONSTANT(PARAM_ANGULAR_ORTHOGONAL_SOFTNESS); - BIND_CONSTANT(PARAM_ANGULAR_ORTHOGONAL_RESTITUTION); - BIND_CONSTANT(PARAM_ANGULAR_ORTHOGONAL_DAMPING); - - BIND_CONSTANT(PARAM_MAX); + BIND_ENUM_CONSTANT(PARAM_LINEAR_LIMIT_UPPER); + BIND_ENUM_CONSTANT(PARAM_LINEAR_LIMIT_LOWER); + BIND_ENUM_CONSTANT(PARAM_LINEAR_LIMIT_SOFTNESS); + BIND_ENUM_CONSTANT(PARAM_LINEAR_LIMIT_RESTITUTION); + BIND_ENUM_CONSTANT(PARAM_LINEAR_LIMIT_DAMPING); + BIND_ENUM_CONSTANT(PARAM_LINEAR_MOTION_SOFTNESS); + BIND_ENUM_CONSTANT(PARAM_LINEAR_MOTION_RESTITUTION); + BIND_ENUM_CONSTANT(PARAM_LINEAR_MOTION_DAMPING); + BIND_ENUM_CONSTANT(PARAM_LINEAR_ORTHOGONAL_SOFTNESS); + BIND_ENUM_CONSTANT(PARAM_LINEAR_ORTHOGONAL_RESTITUTION); + BIND_ENUM_CONSTANT(PARAM_LINEAR_ORTHOGONAL_DAMPING); + + BIND_ENUM_CONSTANT(PARAM_ANGULAR_LIMIT_UPPER); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_LIMIT_LOWER); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_LIMIT_SOFTNESS); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_LIMIT_RESTITUTION); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_LIMIT_DAMPING); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_MOTION_SOFTNESS); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_MOTION_RESTITUTION); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_MOTION_DAMPING); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_ORTHOGONAL_SOFTNESS); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_ORTHOGONAL_RESTITUTION); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_ORTHOGONAL_DAMPING); + + BIND_ENUM_CONSTANT(PARAM_MAX); } void SliderJoint::set_param(Param p_param, float p_value) { @@ -560,12 +560,12 @@ void ConeTwistJoint::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::REAL, "softness", PROPERTY_HINT_RANGE, "0.01,16.0,0.01"), "set_param", "get_param", PARAM_SOFTNESS); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "relaxation", PROPERTY_HINT_RANGE, "0.01,16.0,0.01"), "set_param", "get_param", PARAM_RELAXATION); - BIND_CONSTANT(PARAM_SWING_SPAN); - BIND_CONSTANT(PARAM_TWIST_SPAN); - BIND_CONSTANT(PARAM_BIAS); - BIND_CONSTANT(PARAM_SOFTNESS); - BIND_CONSTANT(PARAM_RELAXATION); - BIND_CONSTANT(PARAM_MAX); + BIND_ENUM_CONSTANT(PARAM_SWING_SPAN); + BIND_ENUM_CONSTANT(PARAM_TWIST_SPAN); + BIND_ENUM_CONSTANT(PARAM_BIAS); + BIND_ENUM_CONSTANT(PARAM_SOFTNESS); + BIND_ENUM_CONSTANT(PARAM_RELAXATION); + BIND_ENUM_CONSTANT(PARAM_MAX); } void ConeTwistJoint::set_param(Param p_param, float p_value) { @@ -773,26 +773,26 @@ void Generic6DOFJoint::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::REAL, "angular_motor_z/target_velocity"), "set_param_z", "get_param_z", PARAM_ANGULAR_MOTOR_TARGET_VELOCITY); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "angular_motor_z/force_limit"), "set_param_z", "get_param_z", PARAM_ANGULAR_MOTOR_FORCE_LIMIT); - BIND_CONSTANT(PARAM_LINEAR_LOWER_LIMIT); - BIND_CONSTANT(PARAM_LINEAR_UPPER_LIMIT); - BIND_CONSTANT(PARAM_LINEAR_LIMIT_SOFTNESS); - BIND_CONSTANT(PARAM_LINEAR_RESTITUTION); - BIND_CONSTANT(PARAM_LINEAR_DAMPING); - BIND_CONSTANT(PARAM_ANGULAR_LOWER_LIMIT); - BIND_CONSTANT(PARAM_ANGULAR_UPPER_LIMIT); - BIND_CONSTANT(PARAM_ANGULAR_LIMIT_SOFTNESS); - BIND_CONSTANT(PARAM_ANGULAR_DAMPING); - BIND_CONSTANT(PARAM_ANGULAR_RESTITUTION); - BIND_CONSTANT(PARAM_ANGULAR_FORCE_LIMIT); - BIND_CONSTANT(PARAM_ANGULAR_ERP); - BIND_CONSTANT(PARAM_ANGULAR_MOTOR_TARGET_VELOCITY); - BIND_CONSTANT(PARAM_ANGULAR_MOTOR_FORCE_LIMIT); - BIND_CONSTANT(PARAM_MAX); - - BIND_CONSTANT(FLAG_ENABLE_LINEAR_LIMIT); - BIND_CONSTANT(FLAG_ENABLE_ANGULAR_LIMIT); - BIND_CONSTANT(FLAG_ENABLE_MOTOR); - BIND_CONSTANT(FLAG_MAX); + BIND_ENUM_CONSTANT(PARAM_LINEAR_LOWER_LIMIT); + BIND_ENUM_CONSTANT(PARAM_LINEAR_UPPER_LIMIT); + BIND_ENUM_CONSTANT(PARAM_LINEAR_LIMIT_SOFTNESS); + BIND_ENUM_CONSTANT(PARAM_LINEAR_RESTITUTION); + BIND_ENUM_CONSTANT(PARAM_LINEAR_DAMPING); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_LOWER_LIMIT); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_UPPER_LIMIT); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_LIMIT_SOFTNESS); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_DAMPING); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_RESTITUTION); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_FORCE_LIMIT); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_ERP); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_MOTOR_TARGET_VELOCITY); + BIND_ENUM_CONSTANT(PARAM_ANGULAR_MOTOR_FORCE_LIMIT); + BIND_ENUM_CONSTANT(PARAM_MAX); + + BIND_ENUM_CONSTANT(FLAG_ENABLE_LINEAR_LIMIT); + BIND_ENUM_CONSTANT(FLAG_ENABLE_ANGULAR_LIMIT); + BIND_ENUM_CONSTANT(FLAG_ENABLE_MOTOR); + BIND_ENUM_CONSTANT(FLAG_MAX); } void Generic6DOFJoint::set_param_x(Param p_param, float p_value) { diff --git a/scene/3d/reflection_probe.cpp b/scene/3d/reflection_probe.cpp index 0dc5b58e45..194146b6b3 100644 --- a/scene/3d/reflection_probe.cpp +++ b/scene/3d/reflection_probe.cpp @@ -252,8 +252,8 @@ void ReflectionProbe::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::REAL, "interior_ambient_energy", PROPERTY_HINT_RANGE, "0,16,0.01"), "set_interior_ambient_energy", "get_interior_ambient_energy"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "interior_ambient_contrib", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_interior_ambient_probe_contribution", "get_interior_ambient_probe_contribution"); - BIND_CONSTANT(UPDATE_ONCE); - BIND_CONSTANT(UPDATE_ALWAYS); + BIND_ENUM_CONSTANT(UPDATE_ONCE); + BIND_ENUM_CONSTANT(UPDATE_ALWAYS); } ReflectionProbe::ReflectionProbe() { diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp index 978662f7dc..e45cb6d5b9 100644 --- a/scene/3d/sprite_3d.cpp +++ b/scene/3d/sprite_3d.cpp @@ -276,14 +276,14 @@ void SpriteBase3D::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "double_sided"), "set_draw_flag", "get_draw_flag", FLAG_DOUBLE_SIDED); ADD_PROPERTY(PropertyInfo(Variant::INT, "alpha_cut", PROPERTY_HINT_ENUM, "Disabled,Discard,Opaque Pre-Pass"), "set_alpha_cut_mode", "get_alpha_cut_mode"); - BIND_CONSTANT(FLAG_TRANSPARENT); - BIND_CONSTANT(FLAG_SHADED); - BIND_CONSTANT(FLAG_DOUBLE_SIDED); - BIND_CONSTANT(FLAG_MAX); - - BIND_CONSTANT(ALPHA_CUT_DISABLED); - BIND_CONSTANT(ALPHA_CUT_DISCARD); - BIND_CONSTANT(ALPHA_CUT_OPAQUE_PREPASS); + BIND_ENUM_CONSTANT(FLAG_TRANSPARENT); + BIND_ENUM_CONSTANT(FLAG_SHADED); + BIND_ENUM_CONSTANT(FLAG_DOUBLE_SIDED); + BIND_ENUM_CONSTANT(FLAG_MAX); + + BIND_ENUM_CONSTANT(ALPHA_CUT_DISABLED); + BIND_ENUM_CONSTANT(ALPHA_CUT_DISCARD); + BIND_ENUM_CONSTANT(ALPHA_CUT_OPAQUE_PREPASS); } SpriteBase3D::SpriteBase3D() { diff --git a/scene/3d/vehicle_body.cpp b/scene/3d/vehicle_body.cpp index adf235c525..2a41c8f30e 100644 --- a/scene/3d/vehicle_body.cpp +++ b/scene/3d/vehicle_body.cpp @@ -559,6 +559,9 @@ void VehicleBody::_resolve_single_bilateral(PhysicsDirectBodyState *s, const Vec b2invinertia, b2invmass); + // FIXME: rel_vel assignment here is overwritten by the following assignment. + // What seemes to be intented in the next next assignment is: rel_vel = normal.dot(rel_vel); + // Investigate why. real_t rel_vel = jac.getRelativeVelocity( s->get_linear_velocity(), s->get_transform().basis.transposed().xform(s->get_angular_velocity()), diff --git a/scene/3d/visibility_notifier.cpp b/scene/3d/visibility_notifier.cpp index 2fea451fe7..0b77968dca 100644 --- a/scene/3d/visibility_notifier.cpp +++ b/scene/3d/visibility_notifier.cpp @@ -252,9 +252,9 @@ void VisibilityEnabler::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "pause_animations"), "set_enabler", "is_enabler_enabled", ENABLER_PAUSE_ANIMATIONS); ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "freeze_bodies"), "set_enabler", "is_enabler_enabled", ENABLER_FREEZE_BODIES); - BIND_CONSTANT(ENABLER_FREEZE_BODIES); - BIND_CONSTANT(ENABLER_PAUSE_ANIMATIONS); - BIND_CONSTANT(ENABLER_MAX); + BIND_ENUM_CONSTANT(ENABLER_FREEZE_BODIES); + BIND_ENUM_CONSTANT(ENABLER_PAUSE_ANIMATIONS); + BIND_ENUM_CONSTANT(ENABLER_MAX); } void VisibilityEnabler::set_enabler(Enabler p_enabler, bool p_enable) { diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp index b111fb8812..3acb11541f 100644 --- a/scene/animation/animation_player.cpp +++ b/scene/animation/animation_player.cpp @@ -1278,8 +1278,8 @@ void AnimationPlayer::_bind_methods() { ADD_SIGNAL(MethodInfo("animation_changed", PropertyInfo(Variant::STRING, "old_name"), PropertyInfo(Variant::STRING, "new_name"))); ADD_SIGNAL(MethodInfo("animation_started", PropertyInfo(Variant::STRING, "name"))); - BIND_CONSTANT(ANIMATION_PROCESS_FIXED); - BIND_CONSTANT(ANIMATION_PROCESS_IDLE); + BIND_ENUM_CONSTANT(ANIMATION_PROCESS_FIXED); + BIND_ENUM_CONSTANT(ANIMATION_PROCESS_IDLE); } AnimationPlayer::AnimationPlayer() { diff --git a/scene/animation/animation_tree_player.cpp b/scene/animation/animation_tree_player.cpp index c12e97c4a5..fd8b33e666 100644 --- a/scene/animation/animation_tree_player.cpp +++ b/scene/animation/animation_tree_player.cpp @@ -1797,16 +1797,16 @@ void AnimationTreePlayer::_bind_methods() { ADD_GROUP("Playback", "playback_"); ADD_PROPERTY(PropertyInfo(Variant::INT, "playback_process_mode", PROPERTY_HINT_ENUM, "Fixed,Idle"), "set_animation_process_mode", "get_animation_process_mode"); - BIND_CONSTANT(NODE_OUTPUT); - BIND_CONSTANT(NODE_ANIMATION); - BIND_CONSTANT(NODE_ONESHOT); - BIND_CONSTANT(NODE_MIX); - BIND_CONSTANT(NODE_BLEND2); - BIND_CONSTANT(NODE_BLEND3); - BIND_CONSTANT(NODE_BLEND4); - BIND_CONSTANT(NODE_TIMESCALE); - BIND_CONSTANT(NODE_TIMESEEK); - BIND_CONSTANT(NODE_TRANSITION); + BIND_ENUM_CONSTANT(NODE_OUTPUT); + BIND_ENUM_CONSTANT(NODE_ANIMATION); + BIND_ENUM_CONSTANT(NODE_ONESHOT); + BIND_ENUM_CONSTANT(NODE_MIX); + BIND_ENUM_CONSTANT(NODE_BLEND2); + BIND_ENUM_CONSTANT(NODE_BLEND3); + BIND_ENUM_CONSTANT(NODE_BLEND4); + BIND_ENUM_CONSTANT(NODE_TIMESCALE); + BIND_ENUM_CONSTANT(NODE_TIMESEEK); + BIND_ENUM_CONSTANT(NODE_TRANSITION); } AnimationTreePlayer::AnimationTreePlayer() { diff --git a/scene/animation/tween.cpp b/scene/animation/tween.cpp index 78d3357bb4..45994ba050 100644 --- a/scene/animation/tween.cpp +++ b/scene/animation/tween.cpp @@ -224,25 +224,25 @@ void Tween::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "playback_process_mode", PROPERTY_HINT_ENUM, "Fixed,Idle"), "set_tween_process_mode", "get_tween_process_mode"); - BIND_CONSTANT(TWEEN_PROCESS_FIXED); - BIND_CONSTANT(TWEEN_PROCESS_IDLE); - - BIND_CONSTANT(TRANS_LINEAR); - BIND_CONSTANT(TRANS_SINE); - BIND_CONSTANT(TRANS_QUINT); - BIND_CONSTANT(TRANS_QUART); - BIND_CONSTANT(TRANS_QUAD); - BIND_CONSTANT(TRANS_EXPO); - BIND_CONSTANT(TRANS_ELASTIC); - BIND_CONSTANT(TRANS_CUBIC); - BIND_CONSTANT(TRANS_CIRC); - BIND_CONSTANT(TRANS_BOUNCE); - BIND_CONSTANT(TRANS_BACK); - - BIND_CONSTANT(EASE_IN); - BIND_CONSTANT(EASE_OUT); - BIND_CONSTANT(EASE_IN_OUT); - BIND_CONSTANT(EASE_OUT_IN); + BIND_ENUM_CONSTANT(TWEEN_PROCESS_FIXED); + BIND_ENUM_CONSTANT(TWEEN_PROCESS_IDLE); + + BIND_ENUM_CONSTANT(TRANS_LINEAR); + BIND_ENUM_CONSTANT(TRANS_SINE); + BIND_ENUM_CONSTANT(TRANS_QUINT); + BIND_ENUM_CONSTANT(TRANS_QUART); + BIND_ENUM_CONSTANT(TRANS_QUAD); + BIND_ENUM_CONSTANT(TRANS_EXPO); + BIND_ENUM_CONSTANT(TRANS_ELASTIC); + BIND_ENUM_CONSTANT(TRANS_CUBIC); + BIND_ENUM_CONSTANT(TRANS_CIRC); + BIND_ENUM_CONSTANT(TRANS_BOUNCE); + BIND_ENUM_CONSTANT(TRANS_BACK); + + BIND_ENUM_CONSTANT(EASE_IN); + BIND_ENUM_CONSTANT(EASE_OUT); + BIND_ENUM_CONSTANT(EASE_IN_OUT); + BIND_ENUM_CONSTANT(EASE_OUT_IN); } Variant &Tween::_get_initial_val(InterpolateData &p_data) { diff --git a/scene/gui/base_button.cpp b/scene/gui/base_button.cpp index 9c20decef0..9054063a4b 100644 --- a/scene/gui/base_button.cpp +++ b/scene/gui/base_button.cpp @@ -514,13 +514,13 @@ void BaseButton::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "shortcut", PROPERTY_HINT_RESOURCE_TYPE, "ShortCut"), "set_shortcut", "get_shortcut"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "group", PROPERTY_HINT_RESOURCE_TYPE, "ButtonGroup"), "set_button_group", "get_button_group"); - BIND_CONSTANT(DRAW_NORMAL); - BIND_CONSTANT(DRAW_PRESSED); - BIND_CONSTANT(DRAW_HOVER); - BIND_CONSTANT(DRAW_DISABLED); + BIND_ENUM_CONSTANT(DRAW_NORMAL); + BIND_ENUM_CONSTANT(DRAW_PRESSED); + BIND_ENUM_CONSTANT(DRAW_HOVER); + BIND_ENUM_CONSTANT(DRAW_DISABLED); - BIND_CONSTANT(ACTION_MODE_BUTTON_PRESS); - BIND_CONSTANT(ACTION_MODE_BUTTON_RELEASE); + BIND_ENUM_CONSTANT(ACTION_MODE_BUTTON_PRESS); + BIND_ENUM_CONSTANT(ACTION_MODE_BUTTON_RELEASE); } BaseButton::BaseButton() { diff --git a/scene/gui/box_container.cpp b/scene/gui/box_container.cpp index 16b2cfa083..2cc4be96a7 100644 --- a/scene/gui/box_container.cpp +++ b/scene/gui/box_container.cpp @@ -295,9 +295,9 @@ void BoxContainer::_bind_methods() { ClassDB::bind_method(D_METHOD("get_alignment"), &BoxContainer::get_alignment); ClassDB::bind_method(D_METHOD("set_alignment", "alignment"), &BoxContainer::set_alignment); - BIND_CONSTANT(ALIGN_BEGIN); - BIND_CONSTANT(ALIGN_CENTER); - BIND_CONSTANT(ALIGN_END); + BIND_ENUM_CONSTANT(ALIGN_BEGIN); + BIND_ENUM_CONSTANT(ALIGN_CENTER); + BIND_ENUM_CONSTANT(ALIGN_END); ADD_PROPERTY(PropertyInfo(Variant::INT, "alignment", PROPERTY_HINT_ENUM, "Begin,Center,End"), "set_alignment", "get_alignment"); } diff --git a/scene/gui/button.cpp b/scene/gui/button.cpp index 5036e4f7f6..c8838f3eca 100644 --- a/scene/gui/button.cpp +++ b/scene/gui/button.cpp @@ -245,9 +245,9 @@ void Button::_bind_methods() { ClassDB::bind_method(D_METHOD("get_text_align"), &Button::get_text_align); ClassDB::bind_method(D_METHOD("is_flat"), &Button::is_flat); - BIND_CONSTANT(ALIGN_LEFT); - BIND_CONSTANT(ALIGN_CENTER); - BIND_CONSTANT(ALIGN_RIGHT); + BIND_ENUM_CONSTANT(ALIGN_LEFT); + BIND_ENUM_CONSTANT(ALIGN_CENTER); + BIND_ENUM_CONSTANT(ALIGN_RIGHT); ADD_PROPERTYNZ(PropertyInfo(Variant::STRING, "text", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT_INTL), "set_text", "get_text"); ADD_PROPERTYNZ(PropertyInfo(Variant::OBJECT, "icon", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "set_button_icon", "get_button_icon"); diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index 279128725a..6a3ef66e0a 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -2634,9 +2634,9 @@ void Control::_bind_methods() { ADD_PROPERTYNZ(PropertyInfo(Variant::OBJECT, "theme", PROPERTY_HINT_RESOURCE_TYPE, "Theme"), "set_theme", "get_theme"); ADD_GROUP("", ""); - BIND_CONSTANT(FOCUS_NONE); - BIND_CONSTANT(FOCUS_CLICK); - BIND_CONSTANT(FOCUS_ALL); + BIND_ENUM_CONSTANT(FOCUS_NONE); + BIND_ENUM_CONSTANT(FOCUS_CLICK); + BIND_ENUM_CONSTANT(FOCUS_ALL); BIND_CONSTANT(NOTIFICATION_RESIZED); BIND_CONSTANT(NOTIFICATION_MOUSE_ENTER); @@ -2646,56 +2646,56 @@ void Control::_bind_methods() { BIND_CONSTANT(NOTIFICATION_THEME_CHANGED); BIND_CONSTANT(NOTIFICATION_MODAL_CLOSE); - BIND_CONSTANT(CURSOR_ARROW); - BIND_CONSTANT(CURSOR_IBEAM); - BIND_CONSTANT(CURSOR_POINTING_HAND); - BIND_CONSTANT(CURSOR_CROSS); - BIND_CONSTANT(CURSOR_WAIT); - BIND_CONSTANT(CURSOR_BUSY); - BIND_CONSTANT(CURSOR_DRAG); - BIND_CONSTANT(CURSOR_CAN_DROP); - BIND_CONSTANT(CURSOR_FORBIDDEN); - BIND_CONSTANT(CURSOR_VSIZE); - BIND_CONSTANT(CURSOR_HSIZE); - BIND_CONSTANT(CURSOR_BDIAGSIZE); - BIND_CONSTANT(CURSOR_FDIAGSIZE); - BIND_CONSTANT(CURSOR_MOVE); - BIND_CONSTANT(CURSOR_VSPLIT); - BIND_CONSTANT(CURSOR_HSPLIT); - BIND_CONSTANT(CURSOR_HELP); - - BIND_CONSTANT(PRESET_TOP_LEFT); - BIND_CONSTANT(PRESET_TOP_RIGHT); - BIND_CONSTANT(PRESET_BOTTOM_LEFT); - BIND_CONSTANT(PRESET_BOTTOM_RIGHT); - BIND_CONSTANT(PRESET_CENTER_LEFT); - BIND_CONSTANT(PRESET_CENTER_TOP); - BIND_CONSTANT(PRESET_CENTER_RIGHT); - BIND_CONSTANT(PRESET_CENTER_BOTTOM); - BIND_CONSTANT(PRESET_CENTER); - BIND_CONSTANT(PRESET_LEFT_WIDE); - BIND_CONSTANT(PRESET_TOP_WIDE); - BIND_CONSTANT(PRESET_RIGHT_WIDE); - BIND_CONSTANT(PRESET_BOTTOM_WIDE); - BIND_CONSTANT(PRESET_VCENTER_WIDE); - BIND_CONSTANT(PRESET_HCENTER_WIDE); - BIND_CONSTANT(PRESET_WIDE); - - BIND_CONSTANT(SIZE_EXPAND); - BIND_CONSTANT(SIZE_FILL); - BIND_CONSTANT(SIZE_EXPAND_FILL); - BIND_CONSTANT(SIZE_SHRINK_CENTER); - BIND_CONSTANT(SIZE_SHRINK_END); - - BIND_CONSTANT(MOUSE_FILTER_STOP); - BIND_CONSTANT(MOUSE_FILTER_PASS); - BIND_CONSTANT(MOUSE_FILTER_IGNORE); - - BIND_CONSTANT(GROW_DIRECTION_BEGIN); - BIND_CONSTANT(GROW_DIRECTION_END); - - BIND_CONSTANT(ANCHOR_BEGIN); - BIND_CONSTANT(ANCHOR_END); + 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(PRESET_TOP_LEFT); + BIND_ENUM_CONSTANT(PRESET_TOP_RIGHT); + BIND_ENUM_CONSTANT(PRESET_BOTTOM_LEFT); + BIND_ENUM_CONSTANT(PRESET_BOTTOM_RIGHT); + BIND_ENUM_CONSTANT(PRESET_CENTER_LEFT); + BIND_ENUM_CONSTANT(PRESET_CENTER_TOP); + BIND_ENUM_CONSTANT(PRESET_CENTER_RIGHT); + BIND_ENUM_CONSTANT(PRESET_CENTER_BOTTOM); + BIND_ENUM_CONSTANT(PRESET_CENTER); + BIND_ENUM_CONSTANT(PRESET_LEFT_WIDE); + BIND_ENUM_CONSTANT(PRESET_TOP_WIDE); + BIND_ENUM_CONSTANT(PRESET_RIGHT_WIDE); + BIND_ENUM_CONSTANT(PRESET_BOTTOM_WIDE); + BIND_ENUM_CONSTANT(PRESET_VCENTER_WIDE); + BIND_ENUM_CONSTANT(PRESET_HCENTER_WIDE); + BIND_ENUM_CONSTANT(PRESET_WIDE); + + BIND_ENUM_CONSTANT(SIZE_EXPAND); + BIND_ENUM_CONSTANT(SIZE_FILL); + BIND_ENUM_CONSTANT(SIZE_EXPAND_FILL); + BIND_ENUM_CONSTANT(SIZE_SHRINK_CENTER); + BIND_ENUM_CONSTANT(SIZE_SHRINK_END); + + BIND_ENUM_CONSTANT(MOUSE_FILTER_STOP); + BIND_ENUM_CONSTANT(MOUSE_FILTER_PASS); + BIND_ENUM_CONSTANT(MOUSE_FILTER_IGNORE); + + BIND_ENUM_CONSTANT(GROW_DIRECTION_BEGIN); + BIND_ENUM_CONSTANT(GROW_DIRECTION_END); + + BIND_ENUM_CONSTANT(ANCHOR_BEGIN); + BIND_ENUM_CONSTANT(ANCHOR_END); ADD_SIGNAL(MethodInfo("resized")); ADD_SIGNAL(MethodInfo("gui_input", PropertyInfo(Variant::OBJECT, "ev", PROPERTY_HINT_RESOURCE_TYPE, "InputEvent"))); diff --git a/scene/gui/file_dialog.cpp b/scene/gui/file_dialog.cpp index b3530c2971..0b898c4d2e 100644 --- a/scene/gui/file_dialog.cpp +++ b/scene/gui/file_dialog.cpp @@ -718,16 +718,15 @@ void FileDialog::_bind_methods() { ADD_SIGNAL(MethodInfo("files_selected", PropertyInfo(Variant::POOL_STRING_ARRAY, "paths"))); ADD_SIGNAL(MethodInfo("dir_selected", PropertyInfo(Variant::STRING, "dir"))); - BIND_CONSTANT(MODE_OPEN_FILE); - BIND_CONSTANT(MODE_OPEN_FILES); - BIND_CONSTANT(MODE_OPEN_DIR); - BIND_CONSTANT(MODE_OPEN_ANY); - - BIND_CONSTANT(MODE_SAVE_FILE); - - BIND_CONSTANT(ACCESS_RESOURCES); - BIND_CONSTANT(ACCESS_USERDATA); - BIND_CONSTANT(ACCESS_FILESYSTEM); + BIND_ENUM_CONSTANT(MODE_OPEN_FILE); + BIND_ENUM_CONSTANT(MODE_OPEN_FILES); + BIND_ENUM_CONSTANT(MODE_OPEN_DIR); + BIND_ENUM_CONSTANT(MODE_OPEN_ANY); + BIND_ENUM_CONSTANT(MODE_SAVE_FILE); + + BIND_ENUM_CONSTANT(ACCESS_RESOURCES); + BIND_ENUM_CONSTANT(ACCESS_USERDATA); + BIND_ENUM_CONSTANT(ACCESS_FILESYSTEM); ADD_PROPERTY(PropertyInfo(Variant::INT, "mode", PROPERTY_HINT_ENUM, "Open one,Open many,Open folder,Open any,Save"), "set_mode", "get_mode"); ADD_PROPERTY(PropertyInfo(Variant::INT, "access", PROPERTY_HINT_ENUM, "Resources,User data,File system"), "set_access", "get_access"); diff --git a/scene/gui/graph_node.cpp b/scene/gui/graph_node.cpp index b9062295b5..4b4ecc5e98 100644 --- a/scene/gui/graph_node.cpp +++ b/scene/gui/graph_node.cpp @@ -710,9 +710,9 @@ void GraphNode::_bind_methods() { ADD_SIGNAL(MethodInfo("close_request")); ADD_SIGNAL(MethodInfo("resize_request", PropertyInfo(Variant::VECTOR2, "new_minsize"))); - BIND_CONSTANT(OVERLAY_DISABLED); - BIND_CONSTANT(OVERLAY_BREAKPOINT); - BIND_CONSTANT(OVERLAY_POSITION); + BIND_ENUM_CONSTANT(OVERLAY_DISABLED); + BIND_ENUM_CONSTANT(OVERLAY_BREAKPOINT); + BIND_ENUM_CONSTANT(OVERLAY_POSITION); } GraphNode::GraphNode() { diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp index b30a6000ff..c7889a6cf2 100644 --- a/scene/gui/item_list.cpp +++ b/scene/gui/item_list.cpp @@ -1374,10 +1374,11 @@ void ItemList::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "icon_mode", PROPERTY_HINT_ENUM, "Top,Left"), "set_icon_mode", "get_icon_mode"); ADD_PROPERTYNO(PropertyInfo(Variant::REAL, "icon_scale"), "set_icon_scale", "get_icon_scale"); - BIND_CONSTANT(ICON_MODE_TOP); - BIND_CONSTANT(ICON_MODE_LEFT); - BIND_CONSTANT(SELECT_SINGLE); - BIND_CONSTANT(SELECT_MULTI); + BIND_ENUM_CONSTANT(ICON_MODE_TOP); + BIND_ENUM_CONSTANT(ICON_MODE_LEFT); + + BIND_ENUM_CONSTANT(SELECT_SINGLE); + BIND_ENUM_CONSTANT(SELECT_MULTI); ADD_SIGNAL(MethodInfo("item_selected", PropertyInfo(Variant::INT, "index"))); ADD_SIGNAL(MethodInfo("item_rmb_selected", PropertyInfo(Variant::INT, "index"), PropertyInfo(Variant::VECTOR2, "atpos"))); diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp index 84074f96a8..cf7303cbe7 100644 --- a/scene/gui/label.cpp +++ b/scene/gui/label.cpp @@ -644,15 +644,15 @@ void Label::_bind_methods() { ClassDB::bind_method(D_METHOD("set_max_lines_visible", "lines_visible"), &Label::set_max_lines_visible); ClassDB::bind_method(D_METHOD("get_max_lines_visible"), &Label::get_max_lines_visible); - BIND_CONSTANT(ALIGN_LEFT); - BIND_CONSTANT(ALIGN_CENTER); - BIND_CONSTANT(ALIGN_RIGHT); - BIND_CONSTANT(ALIGN_FILL); - - BIND_CONSTANT(VALIGN_TOP); - BIND_CONSTANT(VALIGN_CENTER); - BIND_CONSTANT(VALIGN_BOTTOM); - BIND_CONSTANT(VALIGN_FILL); + BIND_ENUM_CONSTANT(ALIGN_LEFT); + BIND_ENUM_CONSTANT(ALIGN_CENTER); + BIND_ENUM_CONSTANT(ALIGN_RIGHT); + BIND_ENUM_CONSTANT(ALIGN_FILL); + + BIND_ENUM_CONSTANT(VALIGN_TOP); + BIND_ENUM_CONSTANT(VALIGN_CENTER); + BIND_ENUM_CONSTANT(VALIGN_BOTTOM); + BIND_ENUM_CONSTANT(VALIGN_FILL); ADD_PROPERTYNZ(PropertyInfo(Variant::STRING, "text", PROPERTY_HINT_MULTILINE_TEXT, "", PROPERTY_USAGE_DEFAULT_INTL), "set_text", "get_text"); ADD_PROPERTYNZ(PropertyInfo(Variant::INT, "align", PROPERTY_HINT_ENUM, "Left,Center,Right,Fill"), "set_align", "get_align"); diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index 10c3c84c1e..c5360b0df0 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -1352,18 +1352,18 @@ void LineEdit::_bind_methods() { ADD_SIGNAL(MethodInfo("text_changed", PropertyInfo(Variant::STRING, "text"))); ADD_SIGNAL(MethodInfo("text_entered", PropertyInfo(Variant::STRING, "text"))); - BIND_CONSTANT(ALIGN_LEFT); - BIND_CONSTANT(ALIGN_CENTER); - BIND_CONSTANT(ALIGN_RIGHT); - BIND_CONSTANT(ALIGN_FILL); - - BIND_CONSTANT(MENU_CUT); - BIND_CONSTANT(MENU_COPY); - BIND_CONSTANT(MENU_PASTE); - BIND_CONSTANT(MENU_CLEAR); - BIND_CONSTANT(MENU_SELECT_ALL); - BIND_CONSTANT(MENU_UNDO); - BIND_CONSTANT(MENU_MAX); + BIND_ENUM_CONSTANT(ALIGN_LEFT); + BIND_ENUM_CONSTANT(ALIGN_CENTER); + BIND_ENUM_CONSTANT(ALIGN_RIGHT); + BIND_ENUM_CONSTANT(ALIGN_FILL); + + BIND_ENUM_CONSTANT(MENU_CUT); + BIND_ENUM_CONSTANT(MENU_COPY); + BIND_ENUM_CONSTANT(MENU_PASTE); + BIND_ENUM_CONSTANT(MENU_CLEAR); + BIND_ENUM_CONSTANT(MENU_SELECT_ALL); + BIND_ENUM_CONSTANT(MENU_UNDO); + BIND_ENUM_CONSTANT(MENU_MAX); ADD_PROPERTYNZ(PropertyInfo(Variant::STRING, "text"), "set_text", "get_text"); ADD_PROPERTYNZ(PropertyInfo(Variant::INT, "align", PROPERTY_HINT_ENUM, "Left,Center,Right,Fill"), "set_align", "get_align"); diff --git a/scene/gui/line_edit.h b/scene/gui/line_edit.h index fb0eaa9446..7d04e4618b 100644 --- a/scene/gui/line_edit.h +++ b/scene/gui/line_edit.h @@ -186,5 +186,6 @@ public: }; VARIANT_ENUM_CAST(LineEdit::Align); +VARIANT_ENUM_CAST(LineEdit::MenuItems); #endif diff --git a/scene/gui/link_button.cpp b/scene/gui/link_button.cpp index 9cb67b75e2..632e9ec4fc 100644 --- a/scene/gui/link_button.cpp +++ b/scene/gui/link_button.cpp @@ -130,9 +130,9 @@ void LinkButton::_bind_methods() { ClassDB::bind_method(D_METHOD("set_underline_mode", "underline_mode"), &LinkButton::set_underline_mode); ClassDB::bind_method(D_METHOD("get_underline_mode"), &LinkButton::get_underline_mode); - BIND_CONSTANT(UNDERLINE_MODE_ALWAYS); - BIND_CONSTANT(UNDERLINE_MODE_ON_HOVER); - BIND_CONSTANT(UNDERLINE_MODE_NEVER); + BIND_ENUM_CONSTANT(UNDERLINE_MODE_ALWAYS); + BIND_ENUM_CONSTANT(UNDERLINE_MODE_ON_HOVER); + BIND_ENUM_CONSTANT(UNDERLINE_MODE_NEVER); ADD_PROPERTYNZ(PropertyInfo(Variant::STRING, "text"), "set_text", "get_text"); ADD_PROPERTYNZ(PropertyInfo(Variant::INT, "underline", PROPERTY_HINT_ENUM, "Always,On Hover,Never"), "set_underline_mode", "get_underline_mode"); diff --git a/scene/gui/patch_9_rect.cpp b/scene/gui/patch_9_rect.cpp index 249090830d..71cbef495c 100644 --- a/scene/gui/patch_9_rect.cpp +++ b/scene/gui/patch_9_rect.cpp @@ -82,9 +82,9 @@ void NinePatchRect::_bind_methods() { ADD_PROPERTYNZ(PropertyInfo(Variant::INT, "axis_stretch_horizontal", PROPERTY_HINT_ENUM, "Stretch,Tile,Tile Fit"), "set_h_axis_stretch_mode", "get_h_axis_stretch_mode"); ADD_PROPERTYNZ(PropertyInfo(Variant::INT, "axis_stretch_vertical", PROPERTY_HINT_ENUM, "Stretch,Tile,Tile Fit"), "set_v_axis_stretch_mode", "get_v_axis_stretch_mode"); - BIND_CONSTANT(AXIS_STRETCH_MODE_STRETCH); - BIND_CONSTANT(AXIS_STRETCH_MODE_TILE); - BIND_CONSTANT(AXIS_STRETCH_MODE_TILE_FIT); + BIND_ENUM_CONSTANT(AXIS_STRETCH_MODE_STRETCH); + BIND_ENUM_CONSTANT(AXIS_STRETCH_MODE_TILE); + BIND_ENUM_CONSTANT(AXIS_STRETCH_MODE_TILE_FIT); } void NinePatchRect::set_texture(const Ref<Texture> &p_tex) { diff --git a/scene/gui/popup.cpp b/scene/gui/popup.cpp index a0cd0eca8b..4725300a5f 100644 --- a/scene/gui/popup.cpp +++ b/scene/gui/popup.cpp @@ -249,6 +249,7 @@ void Popup::_bind_methods() { ADD_SIGNAL(MethodInfo("popup_hide")); ADD_GROUP("Popup", "popup_"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "popup_exclusive"), "set_exclusive", "is_exclusive"); + BIND_CONSTANT(NOTIFICATION_POST_POPUP); BIND_CONSTANT(NOTIFICATION_POPUP_HIDE); } diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index 42084ade25..f0efbdc517 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -1915,26 +1915,26 @@ void RichTextLabel::_bind_methods() { ADD_SIGNAL(MethodInfo("meta_clicked", PropertyInfo(Variant::NIL, "meta"))); - BIND_CONSTANT(ALIGN_LEFT); - BIND_CONSTANT(ALIGN_CENTER); - BIND_CONSTANT(ALIGN_RIGHT); - BIND_CONSTANT(ALIGN_FILL); - - BIND_CONSTANT(LIST_NUMBERS); - BIND_CONSTANT(LIST_LETTERS); - BIND_CONSTANT(LIST_DOTS); - - BIND_CONSTANT(ITEM_FRAME); - BIND_CONSTANT(ITEM_TEXT); - BIND_CONSTANT(ITEM_IMAGE); - BIND_CONSTANT(ITEM_NEWLINE); - BIND_CONSTANT(ITEM_FONT); - BIND_CONSTANT(ITEM_COLOR); - BIND_CONSTANT(ITEM_UNDERLINE); - BIND_CONSTANT(ITEM_ALIGN); - BIND_CONSTANT(ITEM_INDENT); - BIND_CONSTANT(ITEM_LIST); - BIND_CONSTANT(ITEM_META); + BIND_ENUM_CONSTANT(ALIGN_LEFT); + BIND_ENUM_CONSTANT(ALIGN_CENTER); + BIND_ENUM_CONSTANT(ALIGN_RIGHT); + BIND_ENUM_CONSTANT(ALIGN_FILL); + + BIND_ENUM_CONSTANT(LIST_NUMBERS); + BIND_ENUM_CONSTANT(LIST_LETTERS); + BIND_ENUM_CONSTANT(LIST_DOTS); + + BIND_ENUM_CONSTANT(ITEM_FRAME); + BIND_ENUM_CONSTANT(ITEM_TEXT); + BIND_ENUM_CONSTANT(ITEM_IMAGE); + BIND_ENUM_CONSTANT(ITEM_NEWLINE); + BIND_ENUM_CONSTANT(ITEM_FONT); + BIND_ENUM_CONSTANT(ITEM_COLOR); + BIND_ENUM_CONSTANT(ITEM_UNDERLINE); + BIND_ENUM_CONSTANT(ITEM_ALIGN); + BIND_ENUM_CONSTANT(ITEM_INDENT); + BIND_ENUM_CONSTANT(ITEM_LIST); + BIND_ENUM_CONSTANT(ITEM_META); } void RichTextLabel::set_visible_characters(int p_visible) { diff --git a/scene/gui/split_container.cpp b/scene/gui/split_container.cpp index e3dad08809..5fc3db4672 100644 --- a/scene/gui/split_container.cpp +++ b/scene/gui/split_container.cpp @@ -410,9 +410,9 @@ void SplitContainer::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "collapsed"), "set_collapsed", "is_collapsed"); ADD_PROPERTY(PropertyInfo(Variant::INT, "dragger_visibility", PROPERTY_HINT_ENUM, "Visible,Hidden,Hidden & Collapsed"), "set_dragger_visibility", "get_dragger_visibility"); - BIND_CONSTANT(DRAGGER_VISIBLE); - BIND_CONSTANT(DRAGGER_HIDDEN); - BIND_CONSTANT(DRAGGER_HIDDEN_COLLAPSED); + BIND_ENUM_CONSTANT(DRAGGER_VISIBLE); + BIND_ENUM_CONSTANT(DRAGGER_HIDDEN); + BIND_ENUM_CONSTANT(DRAGGER_HIDDEN_COLLAPSED); } SplitContainer::SplitContainer(bool p_vertical) { diff --git a/scene/gui/tabs.cpp b/scene/gui/tabs.cpp index acffbbc499..b0dc88bbb4 100644 --- a/scene/gui/tabs.cpp +++ b/scene/gui/tabs.cpp @@ -815,15 +815,15 @@ void Tabs::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "current_tab", PROPERTY_HINT_RANGE, "-1,4096,1", PROPERTY_USAGE_EDITOR), "set_current_tab", "get_current_tab"); ADD_PROPERTYNZ(PropertyInfo(Variant::INT, "tab_close_display_policy", PROPERTY_HINT_ENUM, "Show Never,Show Active Only,Show Always"), "set_tab_close_display_policy", "get_tab_close_display_policy"); - BIND_CONSTANT(ALIGN_LEFT); - BIND_CONSTANT(ALIGN_CENTER); - BIND_CONSTANT(ALIGN_RIGHT); - BIND_CONSTANT(ALIGN_MAX); - - BIND_CONSTANT(CLOSE_BUTTON_SHOW_ACTIVE_ONLY); - BIND_CONSTANT(CLOSE_BUTTON_SHOW_ALWAYS); - BIND_CONSTANT(CLOSE_BUTTON_SHOW_NEVER); - BIND_CONSTANT(CLOSE_BUTTON_MAX); + BIND_ENUM_CONSTANT(ALIGN_LEFT); + BIND_ENUM_CONSTANT(ALIGN_CENTER); + BIND_ENUM_CONSTANT(ALIGN_RIGHT); + BIND_ENUM_CONSTANT(ALIGN_MAX); + + BIND_ENUM_CONSTANT(CLOSE_BUTTON_SHOW_ACTIVE_ONLY); + BIND_ENUM_CONSTANT(CLOSE_BUTTON_SHOW_ALWAYS); + BIND_ENUM_CONSTANT(CLOSE_BUTTON_SHOW_NEVER); + BIND_ENUM_CONSTANT(CLOSE_BUTTON_MAX); } Tabs::Tabs() { diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index a62ab0d0c8..f15fb71f87 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -3898,11 +3898,9 @@ bool TextEdit::search(const String &p_key, uint32_t p_search_flags, int p_from_l //search through the whole documment, but start by current line - int line = -1; + int line = p_from_line; int pos = -1; - line = p_from_line; - for (int i = 0; i < text.size() + 1; i++) { //backwards is broken... //int idx=(p_search_flags&SEARCH_BACKWARDS)?(text.size()-i):i; //do backwards seearch @@ -4712,9 +4710,9 @@ void TextEdit::_bind_methods() { ClassDB::bind_method(D_METHOD("_click_selection_held"), &TextEdit::_click_selection_held); ClassDB::bind_method(D_METHOD("_toggle_draw_caret"), &TextEdit::_toggle_draw_caret); - BIND_CONSTANT(SEARCH_MATCH_CASE); - BIND_CONSTANT(SEARCH_WHOLE_WORDS); - BIND_CONSTANT(SEARCH_BACKWARDS); + BIND_ENUM_CONSTANT(SEARCH_MATCH_CASE); + BIND_ENUM_CONSTANT(SEARCH_WHOLE_WORDS); + BIND_ENUM_CONSTANT(SEARCH_BACKWARDS); /* ClassDB::bind_method(D_METHOD("delete_char"),&TextEdit::delete_char); @@ -4800,13 +4798,13 @@ void TextEdit::_bind_methods() { ADD_SIGNAL(MethodInfo("breakpoint_toggled", PropertyInfo(Variant::INT, "row"))); ADD_SIGNAL(MethodInfo("symbol_lookup", PropertyInfo(Variant::STRING, "symbol"), PropertyInfo(Variant::INT, "row"), PropertyInfo(Variant::INT, "column"))); - BIND_CONSTANT(MENU_CUT); - BIND_CONSTANT(MENU_COPY); - BIND_CONSTANT(MENU_PASTE); - BIND_CONSTANT(MENU_CLEAR); - BIND_CONSTANT(MENU_SELECT_ALL); - BIND_CONSTANT(MENU_UNDO); - BIND_CONSTANT(MENU_MAX); + BIND_ENUM_CONSTANT(MENU_CUT); + BIND_ENUM_CONSTANT(MENU_COPY); + BIND_ENUM_CONSTANT(MENU_PASTE); + BIND_ENUM_CONSTANT(MENU_CLEAR); + BIND_ENUM_CONSTANT(MENU_SELECT_ALL); + BIND_ENUM_CONSTANT(MENU_UNDO); + BIND_ENUM_CONSTANT(MENU_MAX); GLOBAL_DEF("gui/timers/text_edit_idle_detect_sec", 3); } diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h index d942f521cd..1abfe368dd 100644 --- a/scene/gui/text_edit.h +++ b/scene/gui/text_edit.h @@ -539,4 +539,7 @@ public: ~TextEdit(); }; +VARIANT_ENUM_CAST(TextEdit::MenuItems); +VARIANT_ENUM_CAST(TextEdit::SearchFlags); + #endif // TEXT_EDIT_H diff --git a/scene/gui/texture_button.cpp b/scene/gui/texture_button.cpp index 7abf8380ce..d307b463d9 100644 --- a/scene/gui/texture_button.cpp +++ b/scene/gui/texture_button.cpp @@ -208,13 +208,13 @@ void TextureButton::_bind_methods() { ADD_PROPERTYNZ(PropertyInfo(Variant::BOOL, "expand", PROPERTY_HINT_RESOURCE_TYPE, "bool"), "set_expand", "get_expand"); ADD_PROPERTYNZ(PropertyInfo(Variant::INT, "stretch_mode", PROPERTY_HINT_ENUM, "Scale,Tile,Keep,Keep Centered,Keep Aspect,Keep Aspect Centered,Keep Aspect Covered"), "set_stretch_mode", "get_stretch_mode"); - BIND_CONSTANT(STRETCH_SCALE); - BIND_CONSTANT(STRETCH_TILE); - BIND_CONSTANT(STRETCH_KEEP); - BIND_CONSTANT(STRETCH_KEEP_CENTERED); - BIND_CONSTANT(STRETCH_KEEP_ASPECT); - BIND_CONSTANT(STRETCH_KEEP_ASPECT_CENTERED); - BIND_CONSTANT(STRETCH_KEEP_ASPECT_COVERED); + BIND_ENUM_CONSTANT(STRETCH_SCALE); + BIND_ENUM_CONSTANT(STRETCH_TILE); + BIND_ENUM_CONSTANT(STRETCH_KEEP); + BIND_ENUM_CONSTANT(STRETCH_KEEP_CENTERED); + BIND_ENUM_CONSTANT(STRETCH_KEEP_ASPECT); + BIND_ENUM_CONSTANT(STRETCH_KEEP_ASPECT_CENTERED); + BIND_ENUM_CONSTANT(STRETCH_KEEP_ASPECT_COVERED); } void TextureButton::set_normal_texture(const Ref<Texture> &p_normal) { diff --git a/scene/gui/texture_progress.cpp b/scene/gui/texture_progress.cpp index a5ca502f71..08025452d8 100644 --- a/scene/gui/texture_progress.cpp +++ b/scene/gui/texture_progress.cpp @@ -275,12 +275,12 @@ void TextureProgress::_bind_methods() { ADD_PROPERTYNZ(PropertyInfo(Variant::REAL, "radial_fill_degrees", PROPERTY_HINT_RANGE, "0.0,360.0,0.1,slider"), "set_fill_degrees", "get_fill_degrees"); ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "radial_center_offset"), "set_radial_center_offset", "get_radial_center_offset"); - BIND_CONSTANT(FILL_LEFT_TO_RIGHT); - BIND_CONSTANT(FILL_RIGHT_TO_LEFT); - BIND_CONSTANT(FILL_TOP_TO_BOTTOM); - BIND_CONSTANT(FILL_BOTTOM_TO_TOP); - BIND_CONSTANT(FILL_CLOCKWISE); - BIND_CONSTANT(FILL_COUNTER_CLOCKWISE); + BIND_ENUM_CONSTANT(FILL_LEFT_TO_RIGHT); + BIND_ENUM_CONSTANT(FILL_RIGHT_TO_LEFT); + BIND_ENUM_CONSTANT(FILL_TOP_TO_BOTTOM); + BIND_ENUM_CONSTANT(FILL_BOTTOM_TO_TOP); + BIND_ENUM_CONSTANT(FILL_CLOCKWISE); + BIND_ENUM_CONSTANT(FILL_COUNTER_CLOCKWISE); } TextureProgress::TextureProgress() { diff --git a/scene/gui/texture_progress.h b/scene/gui/texture_progress.h index c0c2779cf9..3c018febf3 100644 --- a/scene/gui/texture_progress.h +++ b/scene/gui/texture_progress.h @@ -89,4 +89,6 @@ private: Point2 get_relative_center(); }; +VARIANT_ENUM_CAST(TextureProgress::FillMode); + #endif // TEXTURE_PROGRESS_H diff --git a/scene/gui/texture_rect.cpp b/scene/gui/texture_rect.cpp index 92a3db6a74..db340fd4d7 100644 --- a/scene/gui/texture_rect.cpp +++ b/scene/gui/texture_rect.cpp @@ -112,14 +112,14 @@ void TextureRect::_bind_methods() { ADD_PROPERTYNZ(PropertyInfo(Variant::BOOL, "expand"), "set_expand", "has_expand"); ADD_PROPERTYNO(PropertyInfo(Variant::INT, "stretch_mode", PROPERTY_HINT_ENUM, "Scale On Expand (Compat),Scale,Tile,Keep,Keep Centered,Keep Aspect,Keep Aspect Centered,Keep Aspect Covered"), "set_stretch_mode", "get_stretch_mode"); - BIND_CONSTANT(STRETCH_SCALE_ON_EXPAND); - BIND_CONSTANT(STRETCH_SCALE); - BIND_CONSTANT(STRETCH_TILE); - BIND_CONSTANT(STRETCH_KEEP); - BIND_CONSTANT(STRETCH_KEEP_CENTERED); - BIND_CONSTANT(STRETCH_KEEP_ASPECT); - BIND_CONSTANT(STRETCH_KEEP_ASPECT_CENTERED); - BIND_CONSTANT(STRETCH_KEEP_ASPECT_COVERED); + BIND_ENUM_CONSTANT(STRETCH_SCALE_ON_EXPAND); + BIND_ENUM_CONSTANT(STRETCH_SCALE); + BIND_ENUM_CONSTANT(STRETCH_TILE); + BIND_ENUM_CONSTANT(STRETCH_KEEP); + BIND_ENUM_CONSTANT(STRETCH_KEEP_CENTERED); + BIND_ENUM_CONSTANT(STRETCH_KEEP_ASPECT); + BIND_ENUM_CONSTANT(STRETCH_KEEP_ASPECT_CENTERED); + BIND_ENUM_CONSTANT(STRETCH_KEEP_ASPECT_COVERED); } void TextureRect::set_texture(const Ref<Texture> &p_tex) { diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index 3e8d8aed8a..20bf818d44 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -752,12 +752,12 @@ void TreeItem::_bind_methods() { ClassDB::bind_method(D_METHOD("set_disable_folding", "disable"), &TreeItem::set_disable_folding); ClassDB::bind_method(D_METHOD("is_folding_disabled"), &TreeItem::is_folding_disabled); - BIND_CONSTANT(CELL_MODE_STRING); - BIND_CONSTANT(CELL_MODE_CHECK); - BIND_CONSTANT(CELL_MODE_RANGE); - BIND_CONSTANT(CELL_MODE_RANGE_EXPRESSION); - BIND_CONSTANT(CELL_MODE_ICON); - BIND_CONSTANT(CELL_MODE_CUSTOM); + BIND_ENUM_CONSTANT(CELL_MODE_STRING); + BIND_ENUM_CONSTANT(CELL_MODE_CHECK); + BIND_ENUM_CONSTANT(CELL_MODE_RANGE); + BIND_ENUM_CONSTANT(CELL_MODE_RANGE_EXPRESSION); + BIND_ENUM_CONSTANT(CELL_MODE_ICON); + BIND_ENUM_CONSTANT(CELL_MODE_CUSTOM); } void TreeItem::clear_children() { @@ -1459,7 +1459,6 @@ void Tree::select_single_item(TreeItem *p_selected, TreeItem *p_current, int p_c c.selected = true; selected_item = p_selected; selected_col = 0; - selected_item = p_selected; if (!emitted_row) { emit_signal("item_selected"); emitted_row = true; @@ -3658,13 +3657,13 @@ void Tree::_bind_methods() { ADD_SIGNAL(MethodInfo("item_activated")); ADD_SIGNAL(MethodInfo("column_title_pressed", PropertyInfo(Variant::INT, "column"))); - BIND_CONSTANT(SELECT_SINGLE); - BIND_CONSTANT(SELECT_ROW); - BIND_CONSTANT(SELECT_MULTI); + BIND_ENUM_CONSTANT(SELECT_SINGLE); + BIND_ENUM_CONSTANT(SELECT_ROW); + BIND_ENUM_CONSTANT(SELECT_MULTI); - BIND_CONSTANT(DROP_MODE_DISABLED); - BIND_CONSTANT(DROP_MODE_ON_ITEM); - BIND_CONSTANT(DROP_MODE_INBETWEEN); + BIND_ENUM_CONSTANT(DROP_MODE_DISABLED); + BIND_ENUM_CONSTANT(DROP_MODE_ON_ITEM); + BIND_ENUM_CONSTANT(DROP_MODE_INBETWEEN); } Tree::Tree() { diff --git a/scene/gui/tree.h b/scene/gui/tree.h index 1e46956cd9..49a410f115 100644 --- a/scene/gui/tree.h +++ b/scene/gui/tree.h @@ -583,4 +583,5 @@ public: }; VARIANT_ENUM_CAST(Tree::SelectMode); +VARIANT_ENUM_CAST(Tree::DropModeFlags); #endif diff --git a/scene/gui/video_player.cpp b/scene/gui/video_player.cpp index 4886b1cc26..37d10fb63e 100644 --- a/scene/gui/video_player.cpp +++ b/scene/gui/video_player.cpp @@ -399,7 +399,6 @@ VideoPlayer::VideoPlayer() { paused = false; autoplay = false; expand = true; - loops = false; audio_track = 0; diff --git a/scene/main/http_request.cpp b/scene/main/http_request.cpp index a9b2dba186..e57cd857f8 100644 --- a/scene/main/http_request.cpp +++ b/scene/main/http_request.cpp @@ -547,19 +547,19 @@ void HTTPRequest::_bind_methods() { ADD_SIGNAL(MethodInfo("request_completed", PropertyInfo(Variant::INT, "result"), PropertyInfo(Variant::INT, "response_code"), PropertyInfo(Variant::POOL_STRING_ARRAY, "headers"), PropertyInfo(Variant::POOL_BYTE_ARRAY, "body"))); - BIND_CONSTANT(RESULT_SUCCESS); - //BIND_CONSTANT( RESULT_NO_BODY ); - BIND_CONSTANT(RESULT_CHUNKED_BODY_SIZE_MISMATCH); - BIND_CONSTANT(RESULT_CANT_CONNECT); - BIND_CONSTANT(RESULT_CANT_RESOLVE); - BIND_CONSTANT(RESULT_CONNECTION_ERROR); - BIND_CONSTANT(RESULT_SSL_HANDSHAKE_ERROR); - BIND_CONSTANT(RESULT_NO_RESPONSE); - BIND_CONSTANT(RESULT_BODY_SIZE_LIMIT_EXCEEDED); - BIND_CONSTANT(RESULT_REQUEST_FAILED); - BIND_CONSTANT(RESULT_DOWNLOAD_FILE_CANT_OPEN); - BIND_CONSTANT(RESULT_DOWNLOAD_FILE_WRITE_ERROR); - BIND_CONSTANT(RESULT_REDIRECT_LIMIT_REACHED); + BIND_ENUM_CONSTANT(RESULT_SUCCESS); + //BIND_ENUM_CONSTANT( RESULT_NO_BODY ); + BIND_ENUM_CONSTANT(RESULT_CHUNKED_BODY_SIZE_MISMATCH); + BIND_ENUM_CONSTANT(RESULT_CANT_CONNECT); + BIND_ENUM_CONSTANT(RESULT_CANT_RESOLVE); + BIND_ENUM_CONSTANT(RESULT_CONNECTION_ERROR); + BIND_ENUM_CONSTANT(RESULT_SSL_HANDSHAKE_ERROR); + BIND_ENUM_CONSTANT(RESULT_NO_RESPONSE); + BIND_ENUM_CONSTANT(RESULT_BODY_SIZE_LIMIT_EXCEEDED); + BIND_ENUM_CONSTANT(RESULT_REQUEST_FAILED); + BIND_ENUM_CONSTANT(RESULT_DOWNLOAD_FILE_CANT_OPEN); + BIND_ENUM_CONSTANT(RESULT_DOWNLOAD_FILE_WRITE_ERROR); + BIND_ENUM_CONSTANT(RESULT_REDIRECT_LIMIT_REACHED); } HTTPRequest::HTTPRequest() { diff --git a/scene/main/http_request.h b/scene/main/http_request.h index 6099d4e9bf..104f529eae 100644 --- a/scene/main/http_request.h +++ b/scene/main/http_request.h @@ -137,4 +137,6 @@ public: ~HTTPRequest(); }; +VARIANT_ENUM_CAST(HTTPRequest::Result); + #endif // HTTPREQUEST_H diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 8a31b1ef01..c850a5ae74 100755 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -2876,20 +2876,20 @@ void Node::_bind_methods() { BIND_CONSTANT(NOTIFICATION_INTERNAL_PROCESS); BIND_CONSTANT(NOTIFICATION_INTERNAL_FIXED_PROCESS); - BIND_CONSTANT(RPC_MODE_DISABLED); - BIND_CONSTANT(RPC_MODE_REMOTE); - BIND_CONSTANT(RPC_MODE_SYNC); - BIND_CONSTANT(RPC_MODE_MASTER); - BIND_CONSTANT(RPC_MODE_SLAVE); - - BIND_CONSTANT(PAUSE_MODE_INHERIT); - BIND_CONSTANT(PAUSE_MODE_STOP); - BIND_CONSTANT(PAUSE_MODE_PROCESS); - - BIND_CONSTANT(DUPLICATE_SIGNALS); - BIND_CONSTANT(DUPLICATE_GROUPS); - BIND_CONSTANT(DUPLICATE_SCRIPTS); - BIND_CONSTANT(DUPLICATE_USE_INSTANCING); + BIND_ENUM_CONSTANT(RPC_MODE_DISABLED); + BIND_ENUM_CONSTANT(RPC_MODE_REMOTE); + BIND_ENUM_CONSTANT(RPC_MODE_SYNC); + BIND_ENUM_CONSTANT(RPC_MODE_MASTER); + BIND_ENUM_CONSTANT(RPC_MODE_SLAVE); + + BIND_ENUM_CONSTANT(PAUSE_MODE_INHERIT); + BIND_ENUM_CONSTANT(PAUSE_MODE_STOP); + BIND_ENUM_CONSTANT(PAUSE_MODE_PROCESS); + + BIND_ENUM_CONSTANT(DUPLICATE_SIGNALS); + BIND_ENUM_CONSTANT(DUPLICATE_GROUPS); + BIND_ENUM_CONSTANT(DUPLICATE_SCRIPTS); + BIND_ENUM_CONSTANT(DUPLICATE_USE_INSTANCING); ADD_SIGNAL(MethodInfo("renamed")); ADD_SIGNAL(MethodInfo("tree_entered")); diff --git a/scene/main/node.h b/scene/main/node.h index 180ec05773..b5ce6682d8 100644 --- a/scene/main/node.h +++ b/scene/main/node.h @@ -414,6 +414,8 @@ public: ~Node(); }; +VARIANT_ENUM_CAST(Node::DuplicateFlags); + typedef Set<Node *, Node::Comparator> NodeSet; #endif diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp index 8c0733e8b2..00460e9eda 100644 --- a/scene/main/scene_tree.cpp +++ b/scene/main/scene_tree.cpp @@ -38,6 +38,7 @@ #include <stdio.h> //#include "servers/spatial_sound_2d_server.h" +#include "editor/editor_node.h" #include "io/marshalls.h" #include "io/resource_loader.h" #include "scene/resources/material.h" @@ -626,6 +627,19 @@ void SceneTree::_notification(int p_notification) { } break; + case NOTIFICATION_WM_ABOUT: { + +#ifdef TOOLS_ENABLED + if (Engine::get_singleton()->is_editor_hint()) { + EditorNode::get_singleton()->show_about(); + } else { +#endif + get_root()->propagate_notification(p_notification); +#ifdef TOOLS_ENABLED + } +#endif + } break; + default: break; }; @@ -2191,18 +2205,19 @@ void SceneTree::_bind_methods() { ADD_SIGNAL(MethodInfo("connection_failed")); ADD_SIGNAL(MethodInfo("server_disconnected")); - BIND_CONSTANT(GROUP_CALL_DEFAULT); - BIND_CONSTANT(GROUP_CALL_REVERSE); - BIND_CONSTANT(GROUP_CALL_REALTIME); - BIND_CONSTANT(GROUP_CALL_UNIQUE); - - BIND_CONSTANT(STRETCH_MODE_DISABLED); - BIND_CONSTANT(STRETCH_MODE_2D); - BIND_CONSTANT(STRETCH_MODE_VIEWPORT); - BIND_CONSTANT(STRETCH_ASPECT_IGNORE); - BIND_CONSTANT(STRETCH_ASPECT_KEEP); - BIND_CONSTANT(STRETCH_ASPECT_KEEP_WIDTH); - BIND_CONSTANT(STRETCH_ASPECT_KEEP_HEIGHT); + BIND_ENUM_CONSTANT(GROUP_CALL_DEFAULT); + BIND_ENUM_CONSTANT(GROUP_CALL_REVERSE); + BIND_ENUM_CONSTANT(GROUP_CALL_REALTIME); + BIND_ENUM_CONSTANT(GROUP_CALL_UNIQUE); + + BIND_ENUM_CONSTANT(STRETCH_MODE_DISABLED); + BIND_ENUM_CONSTANT(STRETCH_MODE_2D); + BIND_ENUM_CONSTANT(STRETCH_MODE_VIEWPORT); + + BIND_ENUM_CONSTANT(STRETCH_ASPECT_IGNORE); + BIND_ENUM_CONSTANT(STRETCH_ASPECT_KEEP); + BIND_ENUM_CONSTANT(STRETCH_ASPECT_KEEP_WIDTH); + BIND_ENUM_CONSTANT(STRETCH_ASPECT_KEEP_HEIGHT); } SceneTree *SceneTree::singleton = NULL; diff --git a/scene/main/scene_tree.h b/scene/main/scene_tree.h index 5563bd33be..c62607244e 100644 --- a/scene/main/scene_tree.h +++ b/scene/main/scene_tree.h @@ -456,5 +456,6 @@ public: VARIANT_ENUM_CAST(SceneTree::StretchMode); VARIANT_ENUM_CAST(SceneTree::StretchAspect); +VARIANT_ENUM_CAST(SceneTree::CallGroupFlags); #endif diff --git a/scene/main/timer.cpp b/scene/main/timer.cpp index 06801ee49d..42690ab93a 100755 --- a/scene/main/timer.cpp +++ b/scene/main/timer.cpp @@ -204,8 +204,8 @@ void Timer::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "one_shot"), "set_one_shot", "is_one_shot"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "autostart"), "set_autostart", "has_autostart"); - BIND_CONSTANT(TIMER_PROCESS_FIXED); - BIND_CONSTANT(TIMER_PROCESS_IDLE); + BIND_ENUM_CONSTANT(TIMER_PROCESS_FIXED); + BIND_ENUM_CONSTANT(TIMER_PROCESS_IDLE); } Timer::Timer() { diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index e19e069282..e0800f4907 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -2776,38 +2776,38 @@ void Viewport::_bind_methods() { ADD_SIGNAL(MethodInfo("size_changed")); - BIND_CONSTANT(UPDATE_DISABLED); - BIND_CONSTANT(UPDATE_ONCE); - BIND_CONSTANT(UPDATE_WHEN_VISIBLE); - BIND_CONSTANT(UPDATE_ALWAYS); - - BIND_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED); - BIND_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_1); - BIND_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_4); - BIND_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_16); - BIND_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_64); - BIND_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_256); - BIND_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_1024); - BIND_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_MAX); - - BIND_CONSTANT(RENDER_INFO_OBJECTS_IN_FRAME); - BIND_CONSTANT(RENDER_INFO_VERTICES_IN_FRAME); - BIND_CONSTANT(RENDER_INFO_MATERIAL_CHANGES_IN_FRAME); - BIND_CONSTANT(RENDER_INFO_SHADER_CHANGES_IN_FRAME); - BIND_CONSTANT(RENDER_INFO_SURFACE_CHANGES_IN_FRAME); - BIND_CONSTANT(RENDER_INFO_DRAW_CALLS_IN_FRAME); - BIND_CONSTANT(RENDER_INFO_MAX); - - BIND_CONSTANT(DEBUG_DRAW_DISABLED); - BIND_CONSTANT(DEBUG_DRAW_UNSHADED); - BIND_CONSTANT(DEBUG_DRAW_OVERDRAW); - BIND_CONSTANT(DEBUG_DRAW_WIREFRAME); - - BIND_CONSTANT(MSAA_DISABLED); - BIND_CONSTANT(MSAA_2X); - BIND_CONSTANT(MSAA_4X); - BIND_CONSTANT(MSAA_8X); - BIND_CONSTANT(MSAA_16X); + BIND_ENUM_CONSTANT(UPDATE_DISABLED); + BIND_ENUM_CONSTANT(UPDATE_ONCE); + BIND_ENUM_CONSTANT(UPDATE_WHEN_VISIBLE); + BIND_ENUM_CONSTANT(UPDATE_ALWAYS); + + BIND_ENUM_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED); + BIND_ENUM_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_1); + BIND_ENUM_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_4); + BIND_ENUM_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_16); + BIND_ENUM_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_64); + BIND_ENUM_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_256); + BIND_ENUM_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_1024); + BIND_ENUM_CONSTANT(SHADOW_ATLAS_QUADRANT_SUBDIV_MAX); + + BIND_ENUM_CONSTANT(RENDER_INFO_OBJECTS_IN_FRAME); + BIND_ENUM_CONSTANT(RENDER_INFO_VERTICES_IN_FRAME); + BIND_ENUM_CONSTANT(RENDER_INFO_MATERIAL_CHANGES_IN_FRAME); + BIND_ENUM_CONSTANT(RENDER_INFO_SHADER_CHANGES_IN_FRAME); + BIND_ENUM_CONSTANT(RENDER_INFO_SURFACE_CHANGES_IN_FRAME); + BIND_ENUM_CONSTANT(RENDER_INFO_DRAW_CALLS_IN_FRAME); + BIND_ENUM_CONSTANT(RENDER_INFO_MAX); + + BIND_ENUM_CONSTANT(DEBUG_DRAW_DISABLED); + BIND_ENUM_CONSTANT(DEBUG_DRAW_UNSHADED); + BIND_ENUM_CONSTANT(DEBUG_DRAW_OVERDRAW); + BIND_ENUM_CONSTANT(DEBUG_DRAW_WIREFRAME); + + BIND_ENUM_CONSTANT(MSAA_DISABLED); + BIND_ENUM_CONSTANT(MSAA_2X); + BIND_ENUM_CONSTANT(MSAA_4X); + BIND_ENUM_CONSTANT(MSAA_8X); + BIND_ENUM_CONSTANT(MSAA_16X); } Viewport::Viewport() { diff --git a/scene/resources/animation.cpp b/scene/resources/animation.cpp index a2ff45c623..8878e59e71 100644 --- a/scene/resources/animation.cpp +++ b/scene/resources/animation.cpp @@ -1676,17 +1676,17 @@ void Animation::_bind_methods() { ClassDB::bind_method(D_METHOD("clear"), &Animation::clear); - BIND_CONSTANT(TYPE_VALUE); - BIND_CONSTANT(TYPE_TRANSFORM); - BIND_CONSTANT(TYPE_METHOD); + BIND_ENUM_CONSTANT(TYPE_VALUE); + BIND_ENUM_CONSTANT(TYPE_TRANSFORM); + BIND_ENUM_CONSTANT(TYPE_METHOD); - BIND_CONSTANT(INTERPOLATION_NEAREST); - BIND_CONSTANT(INTERPOLATION_LINEAR); - BIND_CONSTANT(INTERPOLATION_CUBIC); + BIND_ENUM_CONSTANT(INTERPOLATION_NEAREST); + BIND_ENUM_CONSTANT(INTERPOLATION_LINEAR); + BIND_ENUM_CONSTANT(INTERPOLATION_CUBIC); - BIND_CONSTANT(UPDATE_CONTINUOUS); - BIND_CONSTANT(UPDATE_DISCRETE); - BIND_CONSTANT(UPDATE_TRIGGER); + BIND_ENUM_CONSTANT(UPDATE_CONTINUOUS); + BIND_ENUM_CONSTANT(UPDATE_DISCRETE); + BIND_ENUM_CONSTANT(UPDATE_TRIGGER); } void Animation::clear() { diff --git a/scene/resources/dynamic_font.cpp b/scene/resources/dynamic_font.cpp index e424ee48a8..57b860583e 100644 --- a/scene/resources/dynamic_font.cpp +++ b/scene/resources/dynamic_font.cpp @@ -892,10 +892,10 @@ void DynamicFont::_bind_methods() { ADD_GROUP("Font", ""); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "font_data", PROPERTY_HINT_RESOURCE_TYPE, "DynamicFontData"), "set_font_data", "get_font_data"); - BIND_CONSTANT(SPACING_TOP); - BIND_CONSTANT(SPACING_BOTTOM); - BIND_CONSTANT(SPACING_CHAR); - BIND_CONSTANT(SPACING_SPACE); + BIND_ENUM_CONSTANT(SPACING_TOP); + BIND_ENUM_CONSTANT(SPACING_BOTTOM); + BIND_ENUM_CONSTANT(SPACING_CHAR); + BIND_ENUM_CONSTANT(SPACING_SPACE); } DynamicFont::DynamicFont() { diff --git a/scene/resources/dynamic_font.h b/scene/resources/dynamic_font.h index 9024761b96..b8ff2845e7 100644 --- a/scene/resources/dynamic_font.h +++ b/scene/resources/dynamic_font.h @@ -236,6 +236,8 @@ public: ~DynamicFont(); }; +VARIANT_ENUM_CAST(DynamicFont::SpacingType); + ///////////// class ResourceFormatLoaderDynamicFont : public ResourceFormatLoader { diff --git a/scene/resources/environment.cpp b/scene/resources/environment.cpp index 0bf6a50d93..60a700aad8 100644 --- a/scene/resources/environment.cpp +++ b/scene/resources/environment.cpp @@ -1114,23 +1114,26 @@ void Environment::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::REAL, "adjustment_saturation", PROPERTY_HINT_RANGE, "0.01,8,0.01"), "set_adjustment_saturation", "get_adjustment_saturation"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "adjustment_color_correction", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "set_adjustment_color_correction", "get_adjustment_color_correction"); - BIND_CONSTANT(BG_KEEP); - BIND_CONSTANT(BG_CLEAR_COLOR); - BIND_CONSTANT(BG_COLOR); - BIND_CONSTANT(BG_SKY); - BIND_CONSTANT(BG_CANVAS); - BIND_CONSTANT(BG_MAX); - BIND_CONSTANT(GLOW_BLEND_MODE_ADDITIVE); - BIND_CONSTANT(GLOW_BLEND_MODE_SCREEN); - BIND_CONSTANT(GLOW_BLEND_MODE_SOFTLIGHT); - BIND_CONSTANT(GLOW_BLEND_MODE_REPLACE); - BIND_CONSTANT(TONE_MAPPER_LINEAR); - BIND_CONSTANT(TONE_MAPPER_REINHARDT); - BIND_CONSTANT(TONE_MAPPER_FILMIC); - BIND_CONSTANT(TONE_MAPPER_ACES); - BIND_CONSTANT(DOF_BLUR_QUALITY_LOW); - BIND_CONSTANT(DOF_BLUR_QUALITY_MEDIUM); - BIND_CONSTANT(DOF_BLUR_QUALITY_HIGH); + BIND_ENUM_CONSTANT(BG_KEEP); + BIND_ENUM_CONSTANT(BG_CLEAR_COLOR); + BIND_ENUM_CONSTANT(BG_COLOR); + BIND_ENUM_CONSTANT(BG_SKY); + BIND_ENUM_CONSTANT(BG_CANVAS); + BIND_ENUM_CONSTANT(BG_MAX); + + BIND_ENUM_CONSTANT(GLOW_BLEND_MODE_ADDITIVE); + BIND_ENUM_CONSTANT(GLOW_BLEND_MODE_SCREEN); + BIND_ENUM_CONSTANT(GLOW_BLEND_MODE_SOFTLIGHT); + BIND_ENUM_CONSTANT(GLOW_BLEND_MODE_REPLACE); + + BIND_ENUM_CONSTANT(TONE_MAPPER_LINEAR); + BIND_ENUM_CONSTANT(TONE_MAPPER_REINHARDT); + BIND_ENUM_CONSTANT(TONE_MAPPER_FILMIC); + BIND_ENUM_CONSTANT(TONE_MAPPER_ACES); + + BIND_ENUM_CONSTANT(DOF_BLUR_QUALITY_LOW); + BIND_ENUM_CONSTANT(DOF_BLUR_QUALITY_MEDIUM); + BIND_ENUM_CONSTANT(DOF_BLUR_QUALITY_HIGH); } Environment::Environment() { diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp index a111f64e06..555c94a512 100644 --- a/scene/resources/material.cpp +++ b/scene/resources/material.cpp @@ -1718,88 +1718,88 @@ void SpatialMaterial::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "uv2_triplanar"), "set_flag", "get_flag", FLAG_UV2_USE_TRIPLANAR); ADD_PROPERTY(PropertyInfo(Variant::REAL, "uv2_triplanar_sharpness", PROPERTY_HINT_EXP_EASING), "set_uv2_triplanar_blend_sharpness", "get_uv2_triplanar_blend_sharpness"); - BIND_CONSTANT(TEXTURE_ALBEDO); - BIND_CONSTANT(TEXTURE_METALLIC); - BIND_CONSTANT(TEXTURE_ROUGHNESS); - BIND_CONSTANT(TEXTURE_EMISSION); - BIND_CONSTANT(TEXTURE_NORMAL); - BIND_CONSTANT(TEXTURE_RIM); - BIND_CONSTANT(TEXTURE_CLEARCOAT); - BIND_CONSTANT(TEXTURE_FLOWMAP); - BIND_CONSTANT(TEXTURE_AMBIENT_OCCLUSION); - BIND_CONSTANT(TEXTURE_DEPTH); - BIND_CONSTANT(TEXTURE_SUBSURFACE_SCATTERING); - BIND_CONSTANT(TEXTURE_REFRACTION); - BIND_CONSTANT(TEXTURE_DETAIL_MASK); - BIND_CONSTANT(TEXTURE_DETAIL_ALBEDO); - BIND_CONSTANT(TEXTURE_DETAIL_NORMAL); - BIND_CONSTANT(TEXTURE_MAX); - - BIND_CONSTANT(DETAIL_UV_1); - BIND_CONSTANT(DETAIL_UV_2); - - BIND_CONSTANT(FEATURE_TRANSPARENT); - BIND_CONSTANT(FEATURE_EMISSION); - BIND_CONSTANT(FEATURE_NORMAL_MAPPING); - BIND_CONSTANT(FEATURE_RIM); - BIND_CONSTANT(FEATURE_CLEARCOAT); - BIND_CONSTANT(FEATURE_ANISOTROPY); - BIND_CONSTANT(FEATURE_AMBIENT_OCCLUSION); - BIND_CONSTANT(FEATURE_DEPTH_MAPPING); - BIND_CONSTANT(FEATURE_SUBSURACE_SCATTERING); - BIND_CONSTANT(FEATURE_REFRACTION); - BIND_CONSTANT(FEATURE_DETAIL); - BIND_CONSTANT(FEATURE_MAX); - - BIND_CONSTANT(BLEND_MODE_MIX); - BIND_CONSTANT(BLEND_MODE_ADD); - BIND_CONSTANT(BLEND_MODE_SUB); - BIND_CONSTANT(BLEND_MODE_MUL); - - BIND_CONSTANT(DEPTH_DRAW_OPAQUE_ONLY); - BIND_CONSTANT(DEPTH_DRAW_ALWAYS); - BIND_CONSTANT(DEPTH_DRAW_DISABLED); - BIND_CONSTANT(DEPTH_DRAW_ALPHA_OPAQUE_PREPASS); - - BIND_CONSTANT(CULL_BACK); - BIND_CONSTANT(CULL_FRONT); - BIND_CONSTANT(CULL_DISABLED); - - BIND_CONSTANT(FLAG_UNSHADED); - BIND_CONSTANT(FLAG_USE_VERTEX_LIGHTING); - BIND_CONSTANT(FLAG_ONTOP); - BIND_CONSTANT(FLAG_ALBEDO_FROM_VERTEX_COLOR); - BIND_CONSTANT(FLAG_SRGB_VERTEX_COLOR); - BIND_CONSTANT(FLAG_USE_POINT_SIZE); - BIND_CONSTANT(FLAG_FIXED_SIZE); - BIND_CONSTANT(FLAG_UV1_USE_TRIPLANAR); - BIND_CONSTANT(FLAG_UV2_USE_TRIPLANAR); - BIND_CONSTANT(FLAG_AO_ON_UV2); - BIND_CONSTANT(FLAG_USE_ALPHA_SCISSOR); - BIND_CONSTANT(FLAG_MAX); - - BIND_CONSTANT(DIFFUSE_LAMBERT); - BIND_CONSTANT(DIFFUSE_HALF_LAMBERT); - BIND_CONSTANT(DIFFUSE_OREN_NAYAR); - BIND_CONSTANT(DIFFUSE_BURLEY); - BIND_CONSTANT(DIFFUSE_TOON); - - BIND_CONSTANT(SPECULAR_SCHLICK_GGX); - BIND_CONSTANT(SPECULAR_BLINN); - BIND_CONSTANT(SPECULAR_PHONG); - BIND_CONSTANT(SPECULAR_TOON); - BIND_CONSTANT(SPECULAR_DISABLED); - - BIND_CONSTANT(BILLBOARD_DISABLED); - BIND_CONSTANT(BILLBOARD_ENABLED); - BIND_CONSTANT(BILLBOARD_FIXED_Y); - BIND_CONSTANT(BILLBOARD_PARTICLES); - - BIND_CONSTANT(TEXTURE_CHANNEL_RED); - BIND_CONSTANT(TEXTURE_CHANNEL_GREEN); - BIND_CONSTANT(TEXTURE_CHANNEL_BLUE); - BIND_CONSTANT(TEXTURE_CHANNEL_ALPHA); - BIND_CONSTANT(TEXTURE_CHANNEL_GRAYSCALE); + BIND_ENUM_CONSTANT(TEXTURE_ALBEDO); + BIND_ENUM_CONSTANT(TEXTURE_METALLIC); + BIND_ENUM_CONSTANT(TEXTURE_ROUGHNESS); + BIND_ENUM_CONSTANT(TEXTURE_EMISSION); + BIND_ENUM_CONSTANT(TEXTURE_NORMAL); + BIND_ENUM_CONSTANT(TEXTURE_RIM); + BIND_ENUM_CONSTANT(TEXTURE_CLEARCOAT); + BIND_ENUM_CONSTANT(TEXTURE_FLOWMAP); + BIND_ENUM_CONSTANT(TEXTURE_AMBIENT_OCCLUSION); + BIND_ENUM_CONSTANT(TEXTURE_DEPTH); + BIND_ENUM_CONSTANT(TEXTURE_SUBSURFACE_SCATTERING); + BIND_ENUM_CONSTANT(TEXTURE_REFRACTION); + BIND_ENUM_CONSTANT(TEXTURE_DETAIL_MASK); + BIND_ENUM_CONSTANT(TEXTURE_DETAIL_ALBEDO); + BIND_ENUM_CONSTANT(TEXTURE_DETAIL_NORMAL); + BIND_ENUM_CONSTANT(TEXTURE_MAX); + + BIND_ENUM_CONSTANT(DETAIL_UV_1); + BIND_ENUM_CONSTANT(DETAIL_UV_2); + + BIND_ENUM_CONSTANT(FEATURE_TRANSPARENT); + BIND_ENUM_CONSTANT(FEATURE_EMISSION); + BIND_ENUM_CONSTANT(FEATURE_NORMAL_MAPPING); + BIND_ENUM_CONSTANT(FEATURE_RIM); + BIND_ENUM_CONSTANT(FEATURE_CLEARCOAT); + BIND_ENUM_CONSTANT(FEATURE_ANISOTROPY); + BIND_ENUM_CONSTANT(FEATURE_AMBIENT_OCCLUSION); + BIND_ENUM_CONSTANT(FEATURE_DEPTH_MAPPING); + BIND_ENUM_CONSTANT(FEATURE_SUBSURACE_SCATTERING); + BIND_ENUM_CONSTANT(FEATURE_REFRACTION); + BIND_ENUM_CONSTANT(FEATURE_DETAIL); + BIND_ENUM_CONSTANT(FEATURE_MAX); + + BIND_ENUM_CONSTANT(BLEND_MODE_MIX); + BIND_ENUM_CONSTANT(BLEND_MODE_ADD); + BIND_ENUM_CONSTANT(BLEND_MODE_SUB); + BIND_ENUM_CONSTANT(BLEND_MODE_MUL); + + BIND_ENUM_CONSTANT(DEPTH_DRAW_OPAQUE_ONLY); + BIND_ENUM_CONSTANT(DEPTH_DRAW_ALWAYS); + BIND_ENUM_CONSTANT(DEPTH_DRAW_DISABLED); + BIND_ENUM_CONSTANT(DEPTH_DRAW_ALPHA_OPAQUE_PREPASS); + + BIND_ENUM_CONSTANT(CULL_BACK); + BIND_ENUM_CONSTANT(CULL_FRONT); + BIND_ENUM_CONSTANT(CULL_DISABLED); + + BIND_ENUM_CONSTANT(FLAG_UNSHADED); + BIND_ENUM_CONSTANT(FLAG_USE_VERTEX_LIGHTING); + BIND_ENUM_CONSTANT(FLAG_ONTOP); + BIND_ENUM_CONSTANT(FLAG_ALBEDO_FROM_VERTEX_COLOR); + BIND_ENUM_CONSTANT(FLAG_SRGB_VERTEX_COLOR); + BIND_ENUM_CONSTANT(FLAG_USE_POINT_SIZE); + BIND_ENUM_CONSTANT(FLAG_FIXED_SIZE); + BIND_ENUM_CONSTANT(FLAG_UV1_USE_TRIPLANAR); + BIND_ENUM_CONSTANT(FLAG_UV2_USE_TRIPLANAR); + BIND_ENUM_CONSTANT(FLAG_AO_ON_UV2); + BIND_ENUM_CONSTANT(FLAG_USE_ALPHA_SCISSOR); + BIND_ENUM_CONSTANT(FLAG_MAX); + + BIND_ENUM_CONSTANT(DIFFUSE_LAMBERT); + BIND_ENUM_CONSTANT(DIFFUSE_HALF_LAMBERT); + BIND_ENUM_CONSTANT(DIFFUSE_OREN_NAYAR); + BIND_ENUM_CONSTANT(DIFFUSE_BURLEY); + BIND_ENUM_CONSTANT(DIFFUSE_TOON); + + BIND_ENUM_CONSTANT(SPECULAR_SCHLICK_GGX); + BIND_ENUM_CONSTANT(SPECULAR_BLINN); + BIND_ENUM_CONSTANT(SPECULAR_PHONG); + BIND_ENUM_CONSTANT(SPECULAR_TOON); + BIND_ENUM_CONSTANT(SPECULAR_DISABLED); + + BIND_ENUM_CONSTANT(BILLBOARD_DISABLED); + BIND_ENUM_CONSTANT(BILLBOARD_ENABLED); + BIND_ENUM_CONSTANT(BILLBOARD_FIXED_Y); + BIND_ENUM_CONSTANT(BILLBOARD_PARTICLES); + + BIND_ENUM_CONSTANT(TEXTURE_CHANNEL_RED); + BIND_ENUM_CONSTANT(TEXTURE_CHANNEL_GREEN); + BIND_ENUM_CONSTANT(TEXTURE_CHANNEL_BLUE); + BIND_ENUM_CONSTANT(TEXTURE_CHANNEL_ALPHA); + BIND_ENUM_CONSTANT(TEXTURE_CHANNEL_GRAYSCALE); } SpatialMaterial::SpatialMaterial() diff --git a/scene/resources/mesh.cpp b/scene/resources/mesh.cpp index af30e75aed..ebba0ba67f 100644 --- a/scene/resources/mesh.cpp +++ b/scene/resources/mesh.cpp @@ -415,13 +415,13 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const { void Mesh::_bind_methods() { - BIND_CONSTANT(PRIMITIVE_POINTS); - BIND_CONSTANT(PRIMITIVE_LINES); - BIND_CONSTANT(PRIMITIVE_LINE_STRIP); - BIND_CONSTANT(PRIMITIVE_LINE_LOOP); - BIND_CONSTANT(PRIMITIVE_TRIANGLES); - BIND_CONSTANT(PRIMITIVE_TRIANGLE_STRIP); - BIND_CONSTANT(PRIMITIVE_TRIANGLE_FAN); + BIND_ENUM_CONSTANT(PRIMITIVE_POINTS); + BIND_ENUM_CONSTANT(PRIMITIVE_LINES); + BIND_ENUM_CONSTANT(PRIMITIVE_LINE_STRIP); + BIND_ENUM_CONSTANT(PRIMITIVE_LINE_LOOP); + BIND_ENUM_CONSTANT(PRIMITIVE_TRIANGLES); + BIND_ENUM_CONSTANT(PRIMITIVE_TRIANGLE_STRIP); + BIND_ENUM_CONSTANT(PRIMITIVE_TRIANGLE_FAN); } Mesh::Mesh() { @@ -1026,25 +1026,25 @@ void ArrayMesh::_bind_methods() { BIND_CONSTANT(NO_INDEX_ARRAY); BIND_CONSTANT(ARRAY_WEIGHTS_SIZE); - BIND_CONSTANT(ARRAY_VERTEX); - BIND_CONSTANT(ARRAY_NORMAL); - BIND_CONSTANT(ARRAY_TANGENT); - BIND_CONSTANT(ARRAY_COLOR); - BIND_CONSTANT(ARRAY_TEX_UV); - BIND_CONSTANT(ARRAY_TEX_UV2); - BIND_CONSTANT(ARRAY_BONES); - BIND_CONSTANT(ARRAY_WEIGHTS); - BIND_CONSTANT(ARRAY_INDEX); - - BIND_CONSTANT(ARRAY_FORMAT_VERTEX); - BIND_CONSTANT(ARRAY_FORMAT_NORMAL); - BIND_CONSTANT(ARRAY_FORMAT_TANGENT); - BIND_CONSTANT(ARRAY_FORMAT_COLOR); - BIND_CONSTANT(ARRAY_FORMAT_TEX_UV); - BIND_CONSTANT(ARRAY_FORMAT_TEX_UV2); - BIND_CONSTANT(ARRAY_FORMAT_BONES); - BIND_CONSTANT(ARRAY_FORMAT_WEIGHTS); - BIND_CONSTANT(ARRAY_FORMAT_INDEX); + BIND_ENUM_CONSTANT(ARRAY_VERTEX); + BIND_ENUM_CONSTANT(ARRAY_NORMAL); + BIND_ENUM_CONSTANT(ARRAY_TANGENT); + BIND_ENUM_CONSTANT(ARRAY_COLOR); + BIND_ENUM_CONSTANT(ARRAY_TEX_UV); + BIND_ENUM_CONSTANT(ARRAY_TEX_UV2); + BIND_ENUM_CONSTANT(ARRAY_BONES); + BIND_ENUM_CONSTANT(ARRAY_WEIGHTS); + BIND_ENUM_CONSTANT(ARRAY_INDEX); + + BIND_ENUM_CONSTANT(ARRAY_FORMAT_VERTEX); + BIND_ENUM_CONSTANT(ARRAY_FORMAT_NORMAL); + BIND_ENUM_CONSTANT(ARRAY_FORMAT_TANGENT); + BIND_ENUM_CONSTANT(ARRAY_FORMAT_COLOR); + BIND_ENUM_CONSTANT(ARRAY_FORMAT_TEX_UV); + BIND_ENUM_CONSTANT(ARRAY_FORMAT_TEX_UV2); + BIND_ENUM_CONSTANT(ARRAY_FORMAT_BONES); + BIND_ENUM_CONSTANT(ARRAY_FORMAT_WEIGHTS); + BIND_ENUM_CONSTANT(ARRAY_FORMAT_INDEX); } ArrayMesh::ArrayMesh() { diff --git a/scene/resources/mesh.h b/scene/resources/mesh.h index ad3c10b6bc..bccb39e8cd 100644 --- a/scene/resources/mesh.h +++ b/scene/resources/mesh.h @@ -218,6 +218,7 @@ public: }; VARIANT_ENUM_CAST(Mesh::ArrayType); +VARIANT_ENUM_CAST(Mesh::ArrayFormat); VARIANT_ENUM_CAST(Mesh::PrimitiveType); VARIANT_ENUM_CAST(Mesh::BlendShapeMode); diff --git a/scene/resources/multimesh.cpp b/scene/resources/multimesh.cpp index 231e59cdb5..b65800ebbd 100644 --- a/scene/resources/multimesh.cpp +++ b/scene/resources/multimesh.cpp @@ -213,11 +213,12 @@ void MultiMesh::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::POOL_VECTOR3_ARRAY, "transform_array", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "_set_transform_array", "_get_transform_array"); ADD_PROPERTY(PropertyInfo(Variant::POOL_COLOR_ARRAY, "color_array", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "_set_color_array", "_get_color_array"); - BIND_CONSTANT(TRANSFORM_2D); - BIND_CONSTANT(TRANSFORM_3D); - BIND_CONSTANT(COLOR_NONE); - BIND_CONSTANT(COLOR_8BIT); - BIND_CONSTANT(COLOR_FLOAT); + BIND_ENUM_CONSTANT(TRANSFORM_2D); + BIND_ENUM_CONSTANT(TRANSFORM_3D); + + BIND_ENUM_CONSTANT(COLOR_NONE); + BIND_ENUM_CONSTANT(COLOR_8BIT); + BIND_ENUM_CONSTANT(COLOR_FLOAT); } MultiMesh::MultiMesh() { diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp index 4dfc23fa67..d7ea675a47 100644 --- a/scene/resources/packed_scene.cpp +++ b/scene/resources/packed_scene.cpp @@ -1689,9 +1689,9 @@ void SceneState::_bind_methods() { ClassDB::bind_method(D_METHOD("get_connection_flags", "idx"), &SceneState::get_connection_flags); ClassDB::bind_method(D_METHOD("get_connection_binds", "idx"), &SceneState::get_connection_binds); - BIND_CONSTANT(GEN_EDIT_STATE_DISABLED); - BIND_CONSTANT(GEN_EDIT_STATE_INSTANCE); - BIND_CONSTANT(GEN_EDIT_STATE_MAIN); + BIND_ENUM_CONSTANT(GEN_EDIT_STATE_DISABLED); + BIND_ENUM_CONSTANT(GEN_EDIT_STATE_INSTANCE); + BIND_ENUM_CONSTANT(GEN_EDIT_STATE_MAIN); } SceneState::SceneState() { @@ -1792,9 +1792,9 @@ void PackedScene::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "_bundled"), "_set_bundled_scene", "_get_bundled_scene"); - BIND_CONSTANT(GEN_EDIT_STATE_DISABLED); - BIND_CONSTANT(GEN_EDIT_STATE_INSTANCE); - BIND_CONSTANT(GEN_EDIT_STATE_MAIN); + BIND_ENUM_CONSTANT(GEN_EDIT_STATE_DISABLED); + BIND_ENUM_CONSTANT(GEN_EDIT_STATE_INSTANCE); + BIND_ENUM_CONSTANT(GEN_EDIT_STATE_MAIN); } PackedScene::PackedScene() { diff --git a/scene/resources/primitive_meshes.cpp b/scene/resources/primitive_meshes.cpp index 6a3ddde02a..2b8c0ddedd 100644 --- a/scene/resources/primitive_meshes.cpp +++ b/scene/resources/primitive_meshes.cpp @@ -1016,13 +1016,9 @@ void PrismMesh::_create_mesh_array(Array &p_arr) const { for (j = 0; j <= (subdivide_h + 1); j++) { float scale = (y - start_pos.y) / size.y; float scaled_size_x = size.x * scale; - float start_x = start_pos.x; - float offset_front = 0.0; - float offset_back = 0.0; - - start_x += (1.0 - scale) * size.x * left_to_right; - offset_front += (1.0 - scale) * onethird * left_to_right; - offset_back = (1.0 - scale) * onethird * (1.0 - left_to_right); + float start_x = start_pos.x + (1.0 - scale) * size.x * left_to_right; + float offset_front = (1.0 - scale) * onethird * left_to_right; + float offset_back = (1.0 - scale) * onethird * (1.0 - left_to_right); x = 0.0; for (i = 0; i <= (subdivide_w + 1); i++) { diff --git a/scene/resources/shader.cpp b/scene/resources/shader.cpp index b72eb9fbef..acd04a9321 100644 --- a/scene/resources/shader.cpp +++ b/scene/resources/shader.cpp @@ -137,9 +137,9 @@ void Shader::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::STRING, "code", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_code", "get_code"); - BIND_CONSTANT(MODE_SPATIAL); - BIND_CONSTANT(MODE_CANVAS_ITEM); - BIND_CONSTANT(MODE_PARTICLES); + BIND_ENUM_CONSTANT(MODE_SPATIAL); + BIND_ENUM_CONSTANT(MODE_CANVAS_ITEM); + BIND_ENUM_CONSTANT(MODE_PARTICLES); } Shader::Shader() { diff --git a/scene/resources/shader_graph.cpp b/scene/resources/shader_graph.cpp index f68aed6af9..ed63e84d4c 100644 --- a/scene/resources/shader_graph.cpp +++ b/scene/resources/shader_graph.cpp @@ -272,129 +272,129 @@ void ShaderGraph::_bind_methods() { //void get_connections(ShaderType p_which,List<Connection> *p_connections) const; - BIND_CONSTANT( NODE_INPUT ); // all inputs (shader type dependent) - BIND_CONSTANT( NODE_SCALAR_CONST ); //scalar constant - BIND_CONSTANT( NODE_VEC_CONST ); //vec3 constant - BIND_CONSTANT( NODE_RGB_CONST ); //rgb constant (shows a color picker instead) - BIND_CONSTANT( NODE_XFORM_CONST ); // 4x4 matrix constant - BIND_CONSTANT( NODE_TIME ); // time in seconds - BIND_CONSTANT( NODE_SCREEN_TEX ); // screen texture sampler (takes UV) (only usable in fragment shader) - BIND_CONSTANT( NODE_SCALAR_OP ); // scalar vs scalar op (mul ); add ); div ); etc) - BIND_CONSTANT( NODE_VEC_OP ); // vec3 vs vec3 op (mul );ad );div );crossprod );etc) - BIND_CONSTANT( NODE_VEC_SCALAR_OP ); // vec3 vs scalar op (mul ); add ); div ); etc) - BIND_CONSTANT( NODE_RGB_OP ); // vec3 vs vec3 rgb op (with scalar amount) ); like brighten ); darken ); burn ); dodge ); multiply ); etc. - BIND_CONSTANT( NODE_XFORM_MULT ); // mat4 x mat4 - BIND_CONSTANT( NODE_XFORM_VEC_MULT ); // mat4 x vec3 mult (with no-translation option) - BIND_CONSTANT( NODE_XFORM_VEC_INV_MULT ); // mat4 x vec3 inverse mult (with no-translation option) - BIND_CONSTANT( NODE_SCALAR_FUNC ); // scalar function (sin ); cos ); etc) - BIND_CONSTANT( NODE_VEC_FUNC ); // vector function (normalize ); negate ); reciprocal ); rgb2hsv ); hsv2rgb ); etc ); etc) - BIND_CONSTANT( NODE_VEC_LEN ); // vec3 length - BIND_CONSTANT( NODE_DOT_PROD ); // vec3 . vec3 (dot product -> scalar output) - BIND_CONSTANT( NODE_VEC_TO_SCALAR ); // 1 vec3 input ); 3 scalar outputs - BIND_CONSTANT( NODE_SCALAR_TO_VEC ); // 3 scalar input ); 1 vec3 output - BIND_CONSTANT( NODE_VEC_TO_XFORM ); // 3 vec input ); 1 xform output - BIND_CONSTANT( NODE_XFORM_TO_VEC ); // 3 vec input ); 1 xform output - BIND_CONSTANT( NODE_SCALAR_INTERP ); // scalar interpolation (with optional curve) - BIND_CONSTANT( NODE_VEC_INTERP ); // vec3 interpolation (with optional curve) - BIND_CONSTANT( NODE_COLOR_RAMP ); - BIND_CONSTANT( NODE_CURVE_MAP ); - BIND_CONSTANT( NODE_SCALAR_INPUT ); // scalar uniform (assignable in material) - BIND_CONSTANT( NODE_VEC_INPUT ); // vec3 uniform (assignable in material) - BIND_CONSTANT( NODE_RGB_INPUT ); // color uniform (assignable in material) - BIND_CONSTANT( NODE_XFORM_INPUT ); // mat4 uniform (assignable in material) - BIND_CONSTANT( NODE_TEXTURE_INPUT ); // texture input (assignable in material) - BIND_CONSTANT( NODE_CUBEMAP_INPUT ); // cubemap input (assignable in material) - BIND_CONSTANT( NODE_DEFAULT_TEXTURE ); - BIND_CONSTANT( NODE_OUTPUT ); // output (shader type dependent) - BIND_CONSTANT( NODE_COMMENT ); // comment - BIND_CONSTANT( NODE_TYPE_MAX ); - - BIND_CONSTANT( SLOT_TYPE_SCALAR ); - BIND_CONSTANT( SLOT_TYPE_VEC ); - BIND_CONSTANT( SLOT_TYPE_XFORM ); - BIND_CONSTANT( SLOT_TYPE_TEXTURE ); - BIND_CONSTANT( SLOT_MAX ); - - BIND_CONSTANT( SHADER_TYPE_VERTEX ); - BIND_CONSTANT( SHADER_TYPE_FRAGMENT ); - BIND_CONSTANT( SHADER_TYPE_LIGHT ); - BIND_CONSTANT( SHADER_TYPE_MAX ); - - - BIND_CONSTANT( SLOT_IN ); - BIND_CONSTANT( SLOT_OUT ); - - BIND_CONSTANT( GRAPH_OK ); - BIND_CONSTANT( GRAPH_ERROR_CYCLIC ); - BIND_CONSTANT( GRAPH_ERROR_MISSING_CONNECTIONS ); - - BIND_CONSTANT( SCALAR_OP_ADD ); - BIND_CONSTANT( SCALAR_OP_SUB ); - BIND_CONSTANT( SCALAR_OP_MUL ); - BIND_CONSTANT( SCALAR_OP_DIV ); - BIND_CONSTANT( SCALAR_OP_MOD ); - BIND_CONSTANT( SCALAR_OP_POW ); - BIND_CONSTANT( SCALAR_OP_MAX ); - BIND_CONSTANT( SCALAR_OP_MIN ); - BIND_CONSTANT( SCALAR_OP_ATAN2 ); - BIND_CONSTANT( SCALAR_MAX_OP ); - - BIND_CONSTANT( VEC_OP_ADD ); - BIND_CONSTANT( VEC_OP_SUB ); - BIND_CONSTANT( VEC_OP_MUL ); - BIND_CONSTANT( VEC_OP_DIV ); - BIND_CONSTANT( VEC_OP_MOD ); - BIND_CONSTANT( VEC_OP_POW ); - BIND_CONSTANT( VEC_OP_MAX ); - BIND_CONSTANT( VEC_OP_MIN ); - BIND_CONSTANT( VEC_OP_CROSS ); - BIND_CONSTANT( VEC_MAX_OP ); - - BIND_CONSTANT( VEC_SCALAR_OP_MUL ); - BIND_CONSTANT( VEC_SCALAR_OP_DIV ); - BIND_CONSTANT( VEC_SCALAR_OP_POW ); - BIND_CONSTANT( VEC_SCALAR_MAX_OP ); - - BIND_CONSTANT( RGB_OP_SCREEN ); - BIND_CONSTANT( RGB_OP_DIFFERENCE ); - BIND_CONSTANT( RGB_OP_DARKEN ); - BIND_CONSTANT( RGB_OP_LIGHTEN ); - BIND_CONSTANT( RGB_OP_OVERLAY ); - BIND_CONSTANT( RGB_OP_DODGE ); - BIND_CONSTANT( RGB_OP_BURN ); - BIND_CONSTANT( RGB_OP_SOFT_LIGHT ); - BIND_CONSTANT( RGB_OP_HARD_LIGHT ); - BIND_CONSTANT( RGB_MAX_OP ); - - BIND_CONSTANT( SCALAR_FUNC_SIN ); - BIND_CONSTANT( SCALAR_FUNC_COS ); - BIND_CONSTANT( SCALAR_FUNC_TAN ); - BIND_CONSTANT( SCALAR_FUNC_ASIN ); - BIND_CONSTANT( SCALAR_FUNC_ACOS ); - BIND_CONSTANT( SCALAR_FUNC_ATAN ); - BIND_CONSTANT( SCALAR_FUNC_SINH ); - BIND_CONSTANT( SCALAR_FUNC_COSH ); - BIND_CONSTANT( SCALAR_FUNC_TANH ); - BIND_CONSTANT( SCALAR_FUNC_LOG ); - BIND_CONSTANT( SCALAR_FUNC_EXP ); - BIND_CONSTANT( SCALAR_FUNC_SQRT ); - BIND_CONSTANT( SCALAR_FUNC_ABS ); - BIND_CONSTANT( SCALAR_FUNC_SIGN ); - BIND_CONSTANT( SCALAR_FUNC_FLOOR ); - BIND_CONSTANT( SCALAR_FUNC_ROUND ); - BIND_CONSTANT( SCALAR_FUNC_CEIL ); - BIND_CONSTANT( SCALAR_FUNC_FRAC ); - BIND_CONSTANT( SCALAR_FUNC_SATURATE ); - BIND_CONSTANT( SCALAR_FUNC_NEGATE ); - BIND_CONSTANT( SCALAR_MAX_FUNC ); - - BIND_CONSTANT( VEC_FUNC_NORMALIZE ); - BIND_CONSTANT( VEC_FUNC_SATURATE ); - BIND_CONSTANT( VEC_FUNC_NEGATE ); - BIND_CONSTANT( VEC_FUNC_RECIPROCAL ); - BIND_CONSTANT( VEC_FUNC_RGB2HSV ); - BIND_CONSTANT( VEC_FUNC_HSV2RGB ); - BIND_CONSTANT( VEC_MAX_FUNC ); + BIND_ENUM_CONSTANT( NODE_INPUT ); // all inputs (shader type dependent) + BIND_ENUM_CONSTANT( NODE_SCALAR_CONST ); //scalar constant + BIND_ENUM_CONSTANT( NODE_VEC_CONST ); //vec3 constant + BIND_ENUM_CONSTANT( NODE_RGB_CONST ); //rgb constant (shows a color picker instead) + BIND_ENUM_CONSTANT( NODE_XFORM_CONST ); // 4x4 matrix constant + BIND_ENUM_CONSTANT( NODE_TIME ); // time in seconds + BIND_ENUM_CONSTANT( NODE_SCREEN_TEX ); // screen texture sampler (takes UV) (only usable in fragment shader) + BIND_ENUM_CONSTANT( NODE_SCALAR_OP ); // scalar vs scalar op (mul ); add ); div ); etc) + BIND_ENUM_CONSTANT( NODE_VEC_OP ); // vec3 vs vec3 op (mul );ad );div );crossprod );etc) + BIND_ENUM_CONSTANT( NODE_VEC_SCALAR_OP ); // vec3 vs scalar op (mul ); add ); div ); etc) + BIND_ENUM_CONSTANT( NODE_RGB_OP ); // vec3 vs vec3 rgb op (with scalar amount) ); like brighten ); darken ); burn ); dodge ); multiply ); etc. + BIND_ENUM_CONSTANT( NODE_XFORM_MULT ); // mat4 x mat4 + BIND_ENUM_CONSTANT( NODE_XFORM_VEC_MULT ); // mat4 x vec3 mult (with no-translation option) + BIND_ENUM_CONSTANT( NODE_XFORM_VEC_INV_MULT ); // mat4 x vec3 inverse mult (with no-translation option) + BIND_ENUM_CONSTANT( NODE_SCALAR_FUNC ); // scalar function (sin ); cos ); etc) + BIND_ENUM_CONSTANT( NODE_VEC_FUNC ); // vector function (normalize ); negate ); reciprocal ); rgb2hsv ); hsv2rgb ); etc ); etc) + BIND_ENUM_CONSTANT( NODE_VEC_LEN ); // vec3 length + BIND_ENUM_CONSTANT( NODE_DOT_PROD ); // vec3 . vec3 (dot product -> scalar output) + BIND_ENUM_CONSTANT( NODE_VEC_TO_SCALAR ); // 1 vec3 input ); 3 scalar outputs + BIND_ENUM_CONSTANT( NODE_SCALAR_TO_VEC ); // 3 scalar input ); 1 vec3 output + BIND_ENUM_CONSTANT( NODE_VEC_TO_XFORM ); // 3 vec input ); 1 xform output + BIND_ENUM_CONSTANT( NODE_XFORM_TO_VEC ); // 3 vec input ); 1 xform output + BIND_ENUM_CONSTANT( NODE_SCALAR_INTERP ); // scalar interpolation (with optional curve) + BIND_ENUM_CONSTANT( NODE_VEC_INTERP ); // vec3 interpolation (with optional curve) + BIND_ENUM_CONSTANT( NODE_COLOR_RAMP ); + BIND_ENUM_CONSTANT( NODE_CURVE_MAP ); + BIND_ENUM_CONSTANT( NODE_SCALAR_INPUT ); // scalar uniform (assignable in material) + BIND_ENUM_CONSTANT( NODE_VEC_INPUT ); // vec3 uniform (assignable in material) + BIND_ENUM_CONSTANT( NODE_RGB_INPUT ); // color uniform (assignable in material) + BIND_ENUM_CONSTANT( NODE_XFORM_INPUT ); // mat4 uniform (assignable in material) + BIND_ENUM_CONSTANT( NODE_TEXTURE_INPUT ); // texture input (assignable in material) + BIND_ENUM_CONSTANT( NODE_CUBEMAP_INPUT ); // cubemap input (assignable in material) + BIND_ENUM_CONSTANT( NODE_DEFAULT_TEXTURE ); + BIND_ENUM_CONSTANT( NODE_OUTPUT ); // output (shader type dependent) + BIND_ENUM_CONSTANT( NODE_COMMENT ); // comment + BIND_ENUM_CONSTANT( NODE_TYPE_MAX ); + + BIND_ENUM_CONSTANT( SLOT_TYPE_SCALAR ); + BIND_ENUM_CONSTANT( SLOT_TYPE_VEC ); + BIND_ENUM_CONSTANT( SLOT_TYPE_XFORM ); + BIND_ENUM_CONSTANT( SLOT_TYPE_TEXTURE ); + BIND_ENUM_CONSTANT( SLOT_MAX ); + + BIND_ENUM_CONSTANT( SHADER_TYPE_VERTEX ); + BIND_ENUM_CONSTANT( SHADER_TYPE_FRAGMENT ); + BIND_ENUM_CONSTANT( SHADER_TYPE_LIGHT ); + BIND_ENUM_CONSTANT( SHADER_TYPE_MAX ); + + + BIND_ENUM_CONSTANT( SLOT_IN ); + BIND_ENUM_CONSTANT( SLOT_OUT ); + + BIND_ENUM_CONSTANT( GRAPH_OK ); + BIND_ENUM_CONSTANT( GRAPH_ERROR_CYCLIC ); + BIND_ENUM_CONSTANT( GRAPH_ERROR_MISSING_CONNECTIONS ); + + BIND_ENUM_CONSTANT( SCALAR_OP_ADD ); + BIND_ENUM_CONSTANT( SCALAR_OP_SUB ); + BIND_ENUM_CONSTANT( SCALAR_OP_MUL ); + BIND_ENUM_CONSTANT( SCALAR_OP_DIV ); + BIND_ENUM_CONSTANT( SCALAR_OP_MOD ); + BIND_ENUM_CONSTANT( SCALAR_OP_POW ); + BIND_ENUM_CONSTANT( SCALAR_OP_MAX ); + BIND_ENUM_CONSTANT( SCALAR_OP_MIN ); + BIND_ENUM_CONSTANT( SCALAR_OP_ATAN2 ); + BIND_ENUM_CONSTANT( SCALAR_MAX_OP ); + + BIND_ENUM_CONSTANT( VEC_OP_ADD ); + BIND_ENUM_CONSTANT( VEC_OP_SUB ); + BIND_ENUM_CONSTANT( VEC_OP_MUL ); + BIND_ENUM_CONSTANT( VEC_OP_DIV ); + BIND_ENUM_CONSTANT( VEC_OP_MOD ); + BIND_ENUM_CONSTANT( VEC_OP_POW ); + BIND_ENUM_CONSTANT( VEC_OP_MAX ); + BIND_ENUM_CONSTANT( VEC_OP_MIN ); + BIND_ENUM_CONSTANT( VEC_OP_CROSS ); + BIND_ENUM_CONSTANT( VEC_MAX_OP ); + + BIND_ENUM_CONSTANT( VEC_SCALAR_OP_MUL ); + BIND_ENUM_CONSTANT( VEC_SCALAR_OP_DIV ); + BIND_ENUM_CONSTANT( VEC_SCALAR_OP_POW ); + BIND_ENUM_CONSTANT( VEC_SCALAR_MAX_OP ); + + BIND_ENUM_CONSTANT( RGB_OP_SCREEN ); + BIND_ENUM_CONSTANT( RGB_OP_DIFFERENCE ); + BIND_ENUM_CONSTANT( RGB_OP_DARKEN ); + BIND_ENUM_CONSTANT( RGB_OP_LIGHTEN ); + BIND_ENUM_CONSTANT( RGB_OP_OVERLAY ); + BIND_ENUM_CONSTANT( RGB_OP_DODGE ); + BIND_ENUM_CONSTANT( RGB_OP_BURN ); + BIND_ENUM_CONSTANT( RGB_OP_SOFT_LIGHT ); + BIND_ENUM_CONSTANT( RGB_OP_HARD_LIGHT ); + BIND_ENUM_CONSTANT( RGB_MAX_OP ); + + BIND_ENUM_CONSTANT( SCALAR_FUNC_SIN ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_COS ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_TAN ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_ASIN ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_ACOS ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_ATAN ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_SINH ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_COSH ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_TANH ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_LOG ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_EXP ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_SQRT ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_ABS ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_SIGN ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_FLOOR ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_ROUND ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_CEIL ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_FRAC ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_SATURATE ); + BIND_ENUM_CONSTANT( SCALAR_FUNC_NEGATE ); + BIND_ENUM_CONSTANT( SCALAR_MAX_FUNC ); + + BIND_ENUM_CONSTANT( VEC_FUNC_NORMALIZE ); + BIND_ENUM_CONSTANT( VEC_FUNC_SATURATE ); + BIND_ENUM_CONSTANT( VEC_FUNC_NEGATE ); + BIND_ENUM_CONSTANT( VEC_FUNC_RECIPROCAL ); + BIND_ENUM_CONSTANT( VEC_FUNC_RGB2HSV ); + BIND_ENUM_CONSTANT( VEC_FUNC_HSV2RGB ); + BIND_ENUM_CONSTANT( VEC_MAX_FUNC ); ADD_SIGNAL(MethodInfo("updated")); @@ -415,60 +415,60 @@ void ShaderGraph::_bind_methods() { ClassDB::bind_method(D_METHOD("clear"),&ShaderGraph::clear ); - BIND_CONSTANT( NODE_IN ); ///< param 0: name - BIND_CONSTANT( NODE_OUT ); ///< param 0: name - BIND_CONSTANT( NODE_CONSTANT ); ///< param 0: value - BIND_CONSTANT( NODE_PARAMETER ); ///< param 0: name - BIND_CONSTANT( NODE_ADD ); - BIND_CONSTANT( NODE_SUB ); - BIND_CONSTANT( NODE_MUL ); - BIND_CONSTANT( NODE_DIV ); - BIND_CONSTANT( NODE_MOD ); - BIND_CONSTANT( NODE_SIN ); - BIND_CONSTANT( NODE_COS ); - BIND_CONSTANT( NODE_TAN ); - BIND_CONSTANT( NODE_ARCSIN ); - BIND_CONSTANT( NODE_ARCCOS ); - BIND_CONSTANT( NODE_ARCTAN ); - BIND_CONSTANT( NODE_POW ); - BIND_CONSTANT( NODE_LOG ); - BIND_CONSTANT( NODE_MAX ); - BIND_CONSTANT( NODE_MIN ); - BIND_CONSTANT( NODE_COMPARE ); - BIND_CONSTANT( NODE_TEXTURE ); ///< param 0: texture - BIND_CONSTANT( NODE_TIME ); ///< param 0: interval length - BIND_CONSTANT( NODE_NOISE ); - BIND_CONSTANT( NODE_PASS ); - BIND_CONSTANT( NODE_VEC_IN ); ///< param 0: name - BIND_CONSTANT( NODE_VEC_OUT ); ///< param 0: name - BIND_CONSTANT( NODE_VEC_CONSTANT ); ///< param 0: value - BIND_CONSTANT( NODE_VEC_PARAMETER ); ///< param 0: name - BIND_CONSTANT( NODE_VEC_ADD ); - BIND_CONSTANT( NODE_VEC_SUB ); - BIND_CONSTANT( NODE_VEC_MUL ); - BIND_CONSTANT( NODE_VEC_DIV ); - BIND_CONSTANT( NODE_VEC_MOD ); - BIND_CONSTANT( NODE_VEC_CROSS ); - BIND_CONSTANT( NODE_VEC_DOT ); - BIND_CONSTANT( NODE_VEC_POW ); - BIND_CONSTANT( NODE_VEC_NORMALIZE ); - BIND_CONSTANT( NODE_VEC_TRANSFORM3 ); - BIND_CONSTANT( NODE_VEC_TRANSFORM4 ); - BIND_CONSTANT( NODE_VEC_COMPARE ); - BIND_CONSTANT( NODE_VEC_TEXTURE_2D ); - BIND_CONSTANT( NODE_VEC_TEXTURE_CUBE ); - BIND_CONSTANT( NODE_VEC_NOISE ); - BIND_CONSTANT( NODE_VEC_0 ); - BIND_CONSTANT( NODE_VEC_1 ); - BIND_CONSTANT( NODE_VEC_2 ); - BIND_CONSTANT( NODE_VEC_BUILD ); - BIND_CONSTANT( NODE_VEC_PASS ); - BIND_CONSTANT( NODE_COLOR_CONSTANT ); - BIND_CONSTANT( NODE_COLOR_PARAMETER ); - BIND_CONSTANT( NODE_TEXTURE_PARAMETER ); - BIND_CONSTANT( NODE_TEXTURE_2D_PARAMETER ); - BIND_CONSTANT( NODE_TEXTURE_CUBE_PARAMETER ); - BIND_CONSTANT( NODE_TYPE_MAX ); + BIND_ENUM_CONSTANT( NODE_IN ); ///< param 0: name + BIND_ENUM_CONSTANT( NODE_OUT ); ///< param 0: name + BIND_ENUM_CONSTANT( NODE_CONSTANT ); ///< param 0: value + BIND_ENUM_CONSTANT( NODE_PARAMETER ); ///< param 0: name + BIND_ENUM_CONSTANT( NODE_ADD ); + BIND_ENUM_CONSTANT( NODE_SUB ); + BIND_ENUM_CONSTANT( NODE_MUL ); + BIND_ENUM_CONSTANT( NODE_DIV ); + BIND_ENUM_CONSTANT( NODE_MOD ); + BIND_ENUM_CONSTANT( NODE_SIN ); + BIND_ENUM_CONSTANT( NODE_COS ); + BIND_ENUM_CONSTANT( NODE_TAN ); + BIND_ENUM_CONSTANT( NODE_ARCSIN ); + BIND_ENUM_CONSTANT( NODE_ARCCOS ); + BIND_ENUM_CONSTANT( NODE_ARCTAN ); + BIND_ENUM_CONSTANT( NODE_POW ); + BIND_ENUM_CONSTANT( NODE_LOG ); + BIND_ENUM_CONSTANT( NODE_MAX ); + BIND_ENUM_CONSTANT( NODE_MIN ); + BIND_ENUM_CONSTANT( NODE_COMPARE ); + BIND_ENUM_CONSTANT( NODE_TEXTURE ); ///< param 0: texture + BIND_ENUM_CONSTANT( NODE_TIME ); ///< param 0: interval length + BIND_ENUM_CONSTANT( NODE_NOISE ); + BIND_ENUM_CONSTANT( NODE_PASS ); + BIND_ENUM_CONSTANT( NODE_VEC_IN ); ///< param 0: name + BIND_ENUM_CONSTANT( NODE_VEC_OUT ); ///< param 0: name + BIND_ENUM_CONSTANT( NODE_VEC_CONSTANT ); ///< param 0: value + BIND_ENUM_CONSTANT( NODE_VEC_PARAMETER ); ///< param 0: name + BIND_ENUM_CONSTANT( NODE_VEC_ADD ); + BIND_ENUM_CONSTANT( NODE_VEC_SUB ); + BIND_ENUM_CONSTANT( NODE_VEC_MUL ); + BIND_ENUM_CONSTANT( NODE_VEC_DIV ); + BIND_ENUM_CONSTANT( NODE_VEC_MOD ); + BIND_ENUM_CONSTANT( NODE_VEC_CROSS ); + BIND_ENUM_CONSTANT( NODE_VEC_DOT ); + BIND_ENUM_CONSTANT( NODE_VEC_POW ); + BIND_ENUM_CONSTANT( NODE_VEC_NORMALIZE ); + BIND_ENUM_CONSTANT( NODE_VEC_TRANSFORM3 ); + BIND_ENUM_CONSTANT( NODE_VEC_TRANSFORM4 ); + BIND_ENUM_CONSTANT( NODE_VEC_COMPARE ); + BIND_ENUM_CONSTANT( NODE_VEC_TEXTURE_2D ); + BIND_ENUM_CONSTANT( NODE_VEC_TEXTURE_CUBE ); + BIND_ENUM_CONSTANT( NODE_VEC_NOISE ); + BIND_ENUM_CONSTANT( NODE_VEC_0 ); + BIND_ENUM_CONSTANT( NODE_VEC_1 ); + BIND_ENUM_CONSTANT( NODE_VEC_2 ); + BIND_ENUM_CONSTANT( NODE_VEC_BUILD ); + BIND_ENUM_CONSTANT( NODE_VEC_PASS ); + BIND_ENUM_CONSTANT( NODE_COLOR_CONSTANT ); + BIND_ENUM_CONSTANT( NODE_COLOR_PARAMETER ); + BIND_ENUM_CONSTANT( NODE_TEXTURE_PARAMETER ); + BIND_ENUM_CONSTANT( NODE_TEXTURE_2D_PARAMETER ); + BIND_ENUM_CONSTANT( NODE_TEXTURE_CUBE_PARAMETER ); + BIND_ENUM_CONSTANT( NODE_TYPE_MAX ); #endif } diff --git a/scene/resources/sky_box.cpp b/scene/resources/sky_box.cpp index cc3cfe4dc0..b7f2feb58d 100644 --- a/scene/resources/sky_box.cpp +++ b/scene/resources/sky_box.cpp @@ -49,14 +49,14 @@ void Sky::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "radiance_size", PROPERTY_HINT_ENUM, "32,64,128,256,512,1024,2048"), "set_radiance_size", "get_radiance_size"); - BIND_CONSTANT(RADIANCE_SIZE_32); - BIND_CONSTANT(RADIANCE_SIZE_64); - BIND_CONSTANT(RADIANCE_SIZE_128); - BIND_CONSTANT(RADIANCE_SIZE_256); - BIND_CONSTANT(RADIANCE_SIZE_512); - BIND_CONSTANT(RADIANCE_SIZE_1024); - BIND_CONSTANT(RADIANCE_SIZE_2048); - BIND_CONSTANT(RADIANCE_SIZE_MAX); + BIND_ENUM_CONSTANT(RADIANCE_SIZE_32); + BIND_ENUM_CONSTANT(RADIANCE_SIZE_64); + BIND_ENUM_CONSTANT(RADIANCE_SIZE_128); + BIND_ENUM_CONSTANT(RADIANCE_SIZE_256); + BIND_ENUM_CONSTANT(RADIANCE_SIZE_512); + BIND_ENUM_CONSTANT(RADIANCE_SIZE_1024); + BIND_ENUM_CONSTANT(RADIANCE_SIZE_2048); + BIND_ENUM_CONSTANT(RADIANCE_SIZE_MAX); } Sky::Sky() { @@ -517,12 +517,12 @@ void ProceduralSky::_bind_methods() { ADD_GROUP("Texture", "texture_"); ADD_PROPERTY(PropertyInfo(Variant::INT, "texture_size", PROPERTY_HINT_ENUM, "256,512,1024,2048,4096"), "set_texture_size", "get_texture_size"); - BIND_CONSTANT(TEXTURE_SIZE_256); - BIND_CONSTANT(TEXTURE_SIZE_512); - BIND_CONSTANT(TEXTURE_SIZE_1024); - BIND_CONSTANT(TEXTURE_SIZE_2048); - BIND_CONSTANT(TEXTURE_SIZE_4096); - BIND_CONSTANT(TEXTURE_SIZE_MAX); + BIND_ENUM_CONSTANT(TEXTURE_SIZE_256); + BIND_ENUM_CONSTANT(TEXTURE_SIZE_512); + BIND_ENUM_CONSTANT(TEXTURE_SIZE_1024); + BIND_ENUM_CONSTANT(TEXTURE_SIZE_2048); + BIND_ENUM_CONSTANT(TEXTURE_SIZE_4096); + BIND_ENUM_CONSTANT(TEXTURE_SIZE_MAX); } ProceduralSky::ProceduralSky() { diff --git a/scene/resources/style_box.cpp b/scene/resources/style_box.cpp index d6a730647f..3100aab8ad 100644 --- a/scene/resources/style_box.cpp +++ b/scene/resources/style_box.cpp @@ -191,6 +191,22 @@ void StyleBoxTexture::set_expand_margin_size(Margin p_expand_margin, float p_siz emit_changed(); } +void StyleBoxTexture::set_expand_margin_size_individual(float p_left, float p_top, float p_right, float p_bottom) { + expand_margin[MARGIN_LEFT] = p_left; + expand_margin[MARGIN_TOP] = p_top; + expand_margin[MARGIN_RIGHT] = p_right; + expand_margin[MARGIN_BOTTOM] = p_bottom; + emit_changed(); +} + +void StyleBoxTexture::set_expand_margin_size_all(float p_expand_margin_size) { + for (int i = 0; i < 4; i++) { + + expand_margin[i] = p_expand_margin_size; + } + emit_changed(); +} + float StyleBoxTexture::get_expand_margin_size(Margin p_expand_margin) const { ERR_FAIL_INDEX_V(p_expand_margin, 4, 0); @@ -257,6 +273,8 @@ void StyleBoxTexture::_bind_methods() { ClassDB::bind_method(D_METHOD("get_margin_size", "margin"), &StyleBoxTexture::get_margin_size); ClassDB::bind_method(D_METHOD("set_expand_margin_size", "margin", "size"), &StyleBoxTexture::set_expand_margin_size); + ClassDB::bind_method(D_METHOD("set_expand_margin_all", "size"), &StyleBoxFlat::set_expand_margin_size_all); + ClassDB::bind_method(D_METHOD("set_expand_margin_individual", "size_left", "size_top", "size_right", "size_bottom"), &StyleBoxFlat::set_expand_margin_size_individual); ClassDB::bind_method(D_METHOD("get_expand_margin_size", "margin"), &StyleBoxTexture::get_expand_margin_size); ClassDB::bind_method(D_METHOD("set_region_rect", "region"), &StyleBoxTexture::set_region_rect); @@ -296,9 +314,9 @@ void StyleBoxTexture::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::COLOR, "modulate_color"), "set_modulate", "get_modulate"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "draw_center"), "set_draw_center", "get_draw_center"); - BIND_CONSTANT(AXIS_STRETCH_MODE_STRETCH); - BIND_CONSTANT(AXIS_STRETCH_MODE_TILE); - BIND_CONSTANT(AXIS_STRETCH_MODE_TILE_FIT); + BIND_ENUM_CONSTANT(AXIS_STRETCH_MODE_STRETCH); + BIND_ENUM_CONSTANT(AXIS_STRETCH_MODE_TILE); + BIND_ENUM_CONSTANT(AXIS_STRETCH_MODE_TILE_FIT); } StyleBoxTexture::StyleBoxTexture() { @@ -421,7 +439,25 @@ void StyleBoxFlat::set_expand_margin_size(Margin p_expand_margin, float p_size) expand_margin[p_expand_margin] = p_size; emit_changed(); } + +void StyleBoxFlat::set_expand_margin_size_individual(float p_left, float p_top, float p_right, float p_bottom) { + expand_margin[MARGIN_LEFT] = p_left; + expand_margin[MARGIN_TOP] = p_top; + expand_margin[MARGIN_RIGHT] = p_right; + expand_margin[MARGIN_BOTTOM] = p_bottom; + emit_changed(); +} + +void StyleBoxFlat::set_expand_margin_size_all(float p_expand_margin_size) { + for (int i = 0; i < 4; i++) { + + expand_margin[i] = p_expand_margin_size; + } + emit_changed(); +} + float StyleBoxFlat::get_expand_margin_size(Margin p_expand_margin) const { + return expand_margin[p_expand_margin]; } void StyleBoxFlat::set_filled(bool p_filled) { @@ -736,6 +772,8 @@ void StyleBoxFlat::_bind_methods() { ClassDB::bind_method(D_METHOD("get_corner_radius", "corner"), &StyleBoxFlat::get_corner_radius); ClassDB::bind_method(D_METHOD("set_expand_margin", "margin", "size"), &StyleBoxFlat::set_expand_margin_size); + ClassDB::bind_method(D_METHOD("set_expand_margin_all", "size"), &StyleBoxFlat::set_expand_margin_size_all); + ClassDB::bind_method(D_METHOD("set_expand_margin_individual", "size_left", "size_top", "size_right", "size_bottom"), &StyleBoxFlat::set_expand_margin_size_individual); ClassDB::bind_method(D_METHOD("get_expand_margin", "margin"), &StyleBoxFlat::get_expand_margin_size); ClassDB::bind_method(D_METHOD("set_filled", "filled"), &StyleBoxFlat::set_filled); diff --git a/scene/resources/style_box.h b/scene/resources/style_box.h index a750fae753..30eb9543e8 100644 --- a/scene/resources/style_box.h +++ b/scene/resources/style_box.h @@ -101,6 +101,8 @@ protected: public: void set_expand_margin_size(Margin p_expand_margin, float p_size); + void set_expand_margin_size_all(float p_expand_margin_size); + void set_expand_margin_size_individual(float p_left, float p_top, float p_right, float p_bottom); float get_expand_margin_size(Margin p_expand_margin) const; void set_margin_size(Margin p_margin, float p_size); @@ -196,6 +198,8 @@ public: //EXPANDS void set_expand_margin_size(Margin p_expand_margin, float p_size); + void set_expand_margin_size_all(float p_expand_margin_size); + void set_expand_margin_size_individual(float p_left, float p_top, float p_right, float p_bottom); float get_expand_margin_size(Margin p_expand_margin) const; //FILLED diff --git a/scene/resources/texture.cpp b/scene/resources/texture.cpp index 9a251c029d..f542d2a8de 100644 --- a/scene/resources/texture.cpp +++ b/scene/resources/texture.cpp @@ -75,14 +75,14 @@ void Texture::_bind_methods() { ClassDB::bind_method(D_METHOD("draw_rect_region", "canvas_item", "rect", "src_rect", "modulate", "transpose", "normal_map", "clip_uv"), &Texture::draw_rect_region, DEFVAL(Color(1, 1, 1)), DEFVAL(false), DEFVAL(Variant()), DEFVAL(true)); ClassDB::bind_method(D_METHOD("get_data"), &Texture::get_data); - BIND_CONSTANT(FLAG_MIPMAPS); - BIND_CONSTANT(FLAG_REPEAT); - BIND_CONSTANT(FLAG_FILTER); - BIND_CONSTANT(FLAG_VIDEO_SURFACE); - BIND_CONSTANT(FLAGS_DEFAULT); - BIND_CONSTANT(FLAG_ANISOTROPIC_FILTER); - BIND_CONSTANT(FLAG_CONVERT_TO_LINEAR); - BIND_CONSTANT(FLAG_MIRRORED_REPEAT); + BIND_ENUM_CONSTANT(FLAG_MIPMAPS); + BIND_ENUM_CONSTANT(FLAG_REPEAT); + BIND_ENUM_CONSTANT(FLAG_FILTER); + BIND_ENUM_CONSTANT(FLAG_VIDEO_SURFACE); + BIND_ENUM_CONSTANT(FLAGS_DEFAULT); + BIND_ENUM_CONSTANT(FLAG_ANISOTROPIC_FILTER); + BIND_ENUM_CONSTANT(FLAG_CONVERT_TO_LINEAR); + BIND_ENUM_CONSTANT(FLAG_MIRRORED_REPEAT); } Texture::Texture() { @@ -362,9 +362,9 @@ void ImageTexture::_bind_methods() { ClassDB::bind_method(D_METHOD("set_size_override", "size"), &ImageTexture::set_size_override); ClassDB::bind_method(D_METHOD("_reload_hook", "rid"), &ImageTexture::_reload_hook); - BIND_CONSTANT(STORAGE_RAW); - BIND_CONSTANT(STORAGE_COMPRESS_LOSSY); - BIND_CONSTANT(STORAGE_COMPRESS_LOSSLESS); + BIND_ENUM_CONSTANT(STORAGE_RAW); + BIND_ENUM_CONSTANT(STORAGE_COMPRESS_LOSSY); + BIND_ENUM_CONSTANT(STORAGE_COMPRESS_LOSSLESS); } ImageTexture::ImageTexture() { @@ -1335,19 +1335,21 @@ void CubeMap::_bind_methods() { ClassDB::bind_method(D_METHOD("set_lossy_storage_quality", "quality"), &CubeMap::set_lossy_storage_quality); ClassDB::bind_method(D_METHOD("get_lossy_storage_quality"), &CubeMap::get_lossy_storage_quality); - BIND_CONSTANT(STORAGE_RAW); - BIND_CONSTANT(STORAGE_COMPRESS_LOSSY); - BIND_CONSTANT(STORAGE_COMPRESS_LOSSLESS); - BIND_CONSTANT(SIDE_LEFT); - BIND_CONSTANT(SIDE_RIGHT); - BIND_CONSTANT(SIDE_BOTTOM); - BIND_CONSTANT(SIDE_TOP); - BIND_CONSTANT(SIDE_FRONT); - BIND_CONSTANT(SIDE_BACK); - BIND_CONSTANT(FLAG_MIPMAPS); - BIND_CONSTANT(FLAG_REPEAT); - BIND_CONSTANT(FLAG_FILTER); - BIND_CONSTANT(FLAGS_DEFAULT); + BIND_ENUM_CONSTANT(STORAGE_RAW); + BIND_ENUM_CONSTANT(STORAGE_COMPRESS_LOSSY); + BIND_ENUM_CONSTANT(STORAGE_COMPRESS_LOSSLESS); + + BIND_ENUM_CONSTANT(SIDE_LEFT); + BIND_ENUM_CONSTANT(SIDE_RIGHT); + BIND_ENUM_CONSTANT(SIDE_BOTTOM); + BIND_ENUM_CONSTANT(SIDE_TOP); + BIND_ENUM_CONSTANT(SIDE_FRONT); + BIND_ENUM_CONSTANT(SIDE_BACK); + + BIND_ENUM_CONSTANT(FLAG_MIPMAPS); + BIND_ENUM_CONSTANT(FLAG_REPEAT); + BIND_ENUM_CONSTANT(FLAG_FILTER); + BIND_ENUM_CONSTANT(FLAGS_DEFAULT); } CubeMap::CubeMap() { @@ -1366,13 +1368,14 @@ CubeMap::~CubeMap() { VisualServer::get_singleton()->free(cubemap); } -/* BIND_CONSTANT( FLAG_CUBEMAP ); - BIND_CONSTANT( CUBEMAP_LEFT ); - BIND_CONSTANT( CUBEMAP_RIGHT ); - BIND_CONSTANT( CUBEMAP_BOTTOM ); - BIND_CONSTANT( CUBEMAP_TOP ); - BIND_CONSTANT( CUBEMAP_FRONT ); - BIND_CONSTANT( CUBEMAP_BACK ); +/* BIND_ENUM(CubeMapSize); + BIND_ENUM_CONSTANT( FLAG_CUBEMAP ); + BIND_ENUM_CONSTANT( CUBEMAP_LEFT ); + BIND_ENUM_CONSTANT( CUBEMAP_RIGHT ); + BIND_ENUM_CONSTANT( CUBEMAP_BOTTOM ); + BIND_ENUM_CONSTANT( CUBEMAP_TOP ); + BIND_ENUM_CONSTANT( CUBEMAP_FRONT ); + BIND_ENUM_CONSTANT( CUBEMAP_BACK ); */ /////////////////////////// diff --git a/servers/arvr/arvr_interface.cpp b/servers/arvr/arvr_interface.cpp index 81eb011932..1f2e6028b0 100644 --- a/servers/arvr/arvr_interface.cpp +++ b/servers/arvr/arvr_interface.cpp @@ -51,9 +51,9 @@ void ARVRInterface::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "primary"), "set_is_primary", "is_primary"); - BIND_CONSTANT(EYE_MONO); - BIND_CONSTANT(EYE_LEFT); - BIND_CONSTANT(EYE_RIGHT); + BIND_ENUM_CONSTANT(EYE_MONO); + BIND_ENUM_CONSTANT(EYE_LEFT); + BIND_ENUM_CONSTANT(EYE_RIGHT); }; StringName ARVRInterface::get_name() const { diff --git a/servers/arvr_server.cpp b/servers/arvr_server.cpp index 6398d87007..8a064f9cce 100644 --- a/servers/arvr_server.cpp +++ b/servers/arvr_server.cpp @@ -58,12 +58,12 @@ void ARVRServer::_bind_methods() { ClassDB::bind_method(D_METHOD("add_interface"), &ARVRServer::add_interface); ClassDB::bind_method(D_METHOD("remove_interface"), &ARVRServer::remove_interface); - BIND_CONSTANT(TRACKER_CONTROLLER); - BIND_CONSTANT(TRACKER_BASESTATION); - BIND_CONSTANT(TRACKER_ANCHOR); - BIND_CONSTANT(TRACKER_UNKNOWN); - BIND_CONSTANT(TRACKER_ANY_KNOWN); - BIND_CONSTANT(TRACKER_ANY); + BIND_ENUM_CONSTANT(TRACKER_CONTROLLER); + BIND_ENUM_CONSTANT(TRACKER_BASESTATION); + BIND_ENUM_CONSTANT(TRACKER_ANCHOR); + BIND_ENUM_CONSTANT(TRACKER_UNKNOWN); + BIND_ENUM_CONSTANT(TRACKER_ANY_KNOWN); + BIND_ENUM_CONSTANT(TRACKER_ANY); ADD_SIGNAL(MethodInfo("interface_added", PropertyInfo(Variant::STRING, "name"))); ADD_SIGNAL(MethodInfo("interface_removed", PropertyInfo(Variant::STRING, "name"))); diff --git a/servers/physics/broad_phase_octree.cpp b/servers/physics/broad_phase_octree.cpp index e1aaf4e31a..fb2144bd03 100644 --- a/servers/physics/broad_phase_octree.cpp +++ b/servers/physics/broad_phase_octree.cpp @@ -124,6 +124,5 @@ BroadPhaseOctree::BroadPhaseOctree() { octree.set_unpair_callback(_unpair_callback, this); pair_callback = NULL; pair_userdata = NULL; - pair_callback = NULL; unpair_userdata = NULL; } diff --git a/servers/physics/space_sw.cpp b/servers/physics/space_sw.cpp index 094cfa4656..fc52aa45aa 100644 --- a/servers/physics/space_sw.cpp +++ b/servers/physics/space_sw.cpp @@ -474,8 +474,7 @@ bool PhysicsDirectSpaceStateSW::rest_info(RID p_shape, const Transform &p_shape_ Vector3 PhysicsDirectSpaceStateSW::get_closest_point_to_object_volume(RID p_object, const Vector3 p_point) const { - CollisionObjectSW *obj = NULL; - obj = PhysicsServerSW::singleton->area_owner.getornull(p_object); + CollisionObjectSW *obj = PhysicsServerSW::singleton->area_owner.getornull(p_object); if (!obj) { obj = PhysicsServerSW::singleton->body_owner.getornull(p_object); } @@ -598,11 +597,8 @@ bool SpaceSW::test_body_motion(BodySW *p_body, const Transform &p_from, const Ve cbk.amount = 0; cbk.ptr = sr; - CollisionSolverSW::CallbackResult cbkres = NULL; - - PhysicsServerSW::CollCbkData *cbkptr = NULL; - cbkptr = &cbk; - cbkres = PhysicsServerSW::_shape_col_cbk; + PhysicsServerSW::CollCbkData *cbkptr = &cbk; + CollisionSolverSW::CallbackResult cbkres = PhysicsServerSW::_shape_col_cbk; bool collided = false; diff --git a/servers/physics_2d/joints_2d_sw.cpp b/servers/physics_2d/joints_2d_sw.cpp index 449765621e..93091f55cf 100644 --- a/servers/physics_2d/joints_2d_sw.cpp +++ b/servers/physics_2d/joints_2d_sw.cpp @@ -408,8 +408,10 @@ bool GrooveJoint2DSW::setup(real_t p_step) { //joint->bias = cpvclamp(cpvmult(delta, -joint->constraint.biasCoef*dt_inv), joint->constraint.maxBias); Vector2 delta = (B->get_transform().get_origin() + rB) - (A->get_transform().get_origin() + rA); - real_t _b = get_bias(); - _b = 0.001; + + // FIXME: We used to do this assignment and then override it with 0.001 right after. Investigate why. + //real_t _b = get_bias(); + real_t _b = 0.001; gbias = (delta * -(_b == 0 ? space->get_constraint_bias() : _b) * (1.0 / p_step)).clamped(get_max_bias()); // apply accumulated impulse diff --git a/servers/physics_2d/space_2d_sw.cpp b/servers/physics_2d/space_2d_sw.cpp index 29f879d8e9..718669988c 100644 --- a/servers/physics_2d/space_2d_sw.cpp +++ b/servers/physics_2d/space_2d_sw.cpp @@ -532,11 +532,8 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co cbk.amount = 0; cbk.ptr = sr; - CollisionSolver2DSW::CallbackResult cbkres = NULL; - - Physics2DServerSW::CollCbkData *cbkptr = NULL; - cbkptr = &cbk; - cbkres = Physics2DServerSW::_shape_col_cbk; + Physics2DServerSW::CollCbkData *cbkptr = &cbk; + CollisionSolver2DSW::CallbackResult cbkres = Physics2DServerSW::_shape_col_cbk; bool collided = false; diff --git a/servers/physics_2d_server.cpp b/servers/physics_2d_server.cpp index 27732b9c29..898c49a1eb 100644 --- a/servers/physics_2d_server.cpp +++ b/servers/physics_2d_server.cpp @@ -354,12 +354,12 @@ void Physics2DDirectSpaceState::_bind_methods() { ClassDB::bind_method(D_METHOD("get_rest_info", "shape"), &Physics2DDirectSpaceState::_get_rest_info); //ClassDB::bind_method(D_METHOD("cast_motion","shape","xform","motion","exclude","umask"),&Physics2DDirectSpaceState::_intersect_shape,DEFVAL(Array()),DEFVAL(0)); - BIND_CONSTANT(TYPE_MASK_STATIC_BODY); - BIND_CONSTANT(TYPE_MASK_KINEMATIC_BODY); - BIND_CONSTANT(TYPE_MASK_RIGID_BODY); - BIND_CONSTANT(TYPE_MASK_CHARACTER_BODY); - BIND_CONSTANT(TYPE_MASK_AREA); - BIND_CONSTANT(TYPE_MASK_COLLISION); + BIND_ENUM_CONSTANT(TYPE_MASK_STATIC_BODY); + BIND_ENUM_CONSTANT(TYPE_MASK_KINEMATIC_BODY); + BIND_ENUM_CONSTANT(TYPE_MASK_RIGID_BODY); + BIND_ENUM_CONSTANT(TYPE_MASK_CHARACTER_BODY); + BIND_ENUM_CONSTANT(TYPE_MASK_AREA); + BIND_ENUM_CONSTANT(TYPE_MASK_COLLISION); } int Physics2DShapeQueryResult::get_result_count() const { @@ -604,79 +604,79 @@ void Physics2DServer::_bind_methods() { //ClassDB::bind_method(D_METHOD("sync"),&Physics2DServer::sync); //ClassDB::bind_method(D_METHOD("flush_queries"),&Physics2DServer::flush_queries); - BIND_CONSTANT(SPACE_PARAM_CONTACT_RECYCLE_RADIUS); - BIND_CONSTANT(SPACE_PARAM_CONTACT_MAX_SEPARATION); - BIND_CONSTANT(SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION); - BIND_CONSTANT(SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD); - BIND_CONSTANT(SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD); - BIND_CONSTANT(SPACE_PARAM_BODY_TIME_TO_SLEEP); - BIND_CONSTANT(SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS); - - BIND_CONSTANT(SHAPE_LINE); - BIND_CONSTANT(SHAPE_SEGMENT); - BIND_CONSTANT(SHAPE_CIRCLE); - BIND_CONSTANT(SHAPE_RECTANGLE); - BIND_CONSTANT(SHAPE_CAPSULE); - BIND_CONSTANT(SHAPE_CONVEX_POLYGON); - BIND_CONSTANT(SHAPE_CONCAVE_POLYGON); - BIND_CONSTANT(SHAPE_CUSTOM); - - BIND_CONSTANT(AREA_PARAM_GRAVITY); - BIND_CONSTANT(AREA_PARAM_GRAVITY_VECTOR); - BIND_CONSTANT(AREA_PARAM_GRAVITY_IS_POINT); - BIND_CONSTANT(AREA_PARAM_GRAVITY_DISTANCE_SCALE); - BIND_CONSTANT(AREA_PARAM_GRAVITY_POINT_ATTENUATION); - BIND_CONSTANT(AREA_PARAM_LINEAR_DAMP); - BIND_CONSTANT(AREA_PARAM_ANGULAR_DAMP); - BIND_CONSTANT(AREA_PARAM_PRIORITY); - - BIND_CONSTANT(AREA_SPACE_OVERRIDE_DISABLED); - BIND_CONSTANT(AREA_SPACE_OVERRIDE_COMBINE); - BIND_CONSTANT(AREA_SPACE_OVERRIDE_COMBINE_REPLACE); - BIND_CONSTANT(AREA_SPACE_OVERRIDE_REPLACE); - BIND_CONSTANT(AREA_SPACE_OVERRIDE_REPLACE_COMBINE); - - BIND_CONSTANT(BODY_MODE_STATIC); - BIND_CONSTANT(BODY_MODE_KINEMATIC); - BIND_CONSTANT(BODY_MODE_RIGID); - BIND_CONSTANT(BODY_MODE_CHARACTER); - - BIND_CONSTANT(BODY_PARAM_BOUNCE); - BIND_CONSTANT(BODY_PARAM_FRICTION); - BIND_CONSTANT(BODY_PARAM_MASS); - BIND_CONSTANT(BODY_PARAM_INERTIA); - BIND_CONSTANT(BODY_PARAM_GRAVITY_SCALE); - BIND_CONSTANT(BODY_PARAM_LINEAR_DAMP); - BIND_CONSTANT(BODY_PARAM_ANGULAR_DAMP); - BIND_CONSTANT(BODY_PARAM_MAX); - - BIND_CONSTANT(BODY_STATE_TRANSFORM); - BIND_CONSTANT(BODY_STATE_LINEAR_VELOCITY); - BIND_CONSTANT(BODY_STATE_ANGULAR_VELOCITY); - BIND_CONSTANT(BODY_STATE_SLEEPING); - BIND_CONSTANT(BODY_STATE_CAN_SLEEP); - - BIND_CONSTANT(JOINT_PIN); - BIND_CONSTANT(JOINT_GROOVE); - BIND_CONSTANT(JOINT_DAMPED_SPRING); - - BIND_CONSTANT(DAMPED_STRING_REST_LENGTH); - BIND_CONSTANT(DAMPED_STRING_STIFFNESS); - BIND_CONSTANT(DAMPED_STRING_DAMPING); - - BIND_CONSTANT(CCD_MODE_DISABLED); - BIND_CONSTANT(CCD_MODE_CAST_RAY); - BIND_CONSTANT(CCD_MODE_CAST_SHAPE); - - //BIND_CONSTANT( TYPE_BODY ); - //BIND_CONSTANT( TYPE_AREA ); - - BIND_CONSTANT(AREA_BODY_ADDED); - BIND_CONSTANT(AREA_BODY_REMOVED); - - BIND_CONSTANT(INFO_ACTIVE_OBJECTS); - BIND_CONSTANT(INFO_COLLISION_PAIRS); - BIND_CONSTANT(INFO_ISLAND_COUNT); + BIND_ENUM_CONSTANT(SPACE_PARAM_CONTACT_RECYCLE_RADIUS); + BIND_ENUM_CONSTANT(SPACE_PARAM_CONTACT_MAX_SEPARATION); + BIND_ENUM_CONSTANT(SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION); + BIND_ENUM_CONSTANT(SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD); + BIND_ENUM_CONSTANT(SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD); + BIND_ENUM_CONSTANT(SPACE_PARAM_BODY_TIME_TO_SLEEP); + BIND_ENUM_CONSTANT(SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS); + + BIND_ENUM_CONSTANT(SHAPE_LINE); + BIND_ENUM_CONSTANT(SHAPE_SEGMENT); + BIND_ENUM_CONSTANT(SHAPE_CIRCLE); + BIND_ENUM_CONSTANT(SHAPE_RECTANGLE); + BIND_ENUM_CONSTANT(SHAPE_CAPSULE); + BIND_ENUM_CONSTANT(SHAPE_CONVEX_POLYGON); + BIND_ENUM_CONSTANT(SHAPE_CONCAVE_POLYGON); + BIND_ENUM_CONSTANT(SHAPE_CUSTOM); + + BIND_ENUM_CONSTANT(AREA_PARAM_GRAVITY); + BIND_ENUM_CONSTANT(AREA_PARAM_GRAVITY_VECTOR); + BIND_ENUM_CONSTANT(AREA_PARAM_GRAVITY_IS_POINT); + BIND_ENUM_CONSTANT(AREA_PARAM_GRAVITY_DISTANCE_SCALE); + BIND_ENUM_CONSTANT(AREA_PARAM_GRAVITY_POINT_ATTENUATION); + BIND_ENUM_CONSTANT(AREA_PARAM_LINEAR_DAMP); + BIND_ENUM_CONSTANT(AREA_PARAM_ANGULAR_DAMP); + BIND_ENUM_CONSTANT(AREA_PARAM_PRIORITY); + + BIND_ENUM_CONSTANT(AREA_SPACE_OVERRIDE_DISABLED); + BIND_ENUM_CONSTANT(AREA_SPACE_OVERRIDE_COMBINE); + BIND_ENUM_CONSTANT(AREA_SPACE_OVERRIDE_COMBINE_REPLACE); + BIND_ENUM_CONSTANT(AREA_SPACE_OVERRIDE_REPLACE); + BIND_ENUM_CONSTANT(AREA_SPACE_OVERRIDE_REPLACE_COMBINE); + + BIND_ENUM_CONSTANT(BODY_MODE_STATIC); + BIND_ENUM_CONSTANT(BODY_MODE_KINEMATIC); + BIND_ENUM_CONSTANT(BODY_MODE_RIGID); + BIND_ENUM_CONSTANT(BODY_MODE_CHARACTER); + + BIND_ENUM_CONSTANT(BODY_PARAM_BOUNCE); + BIND_ENUM_CONSTANT(BODY_PARAM_FRICTION); + BIND_ENUM_CONSTANT(BODY_PARAM_MASS); + BIND_ENUM_CONSTANT(BODY_PARAM_INERTIA); + BIND_ENUM_CONSTANT(BODY_PARAM_GRAVITY_SCALE); + BIND_ENUM_CONSTANT(BODY_PARAM_LINEAR_DAMP); + BIND_ENUM_CONSTANT(BODY_PARAM_ANGULAR_DAMP); + BIND_ENUM_CONSTANT(BODY_PARAM_MAX); + + BIND_ENUM_CONSTANT(BODY_STATE_TRANSFORM); + BIND_ENUM_CONSTANT(BODY_STATE_LINEAR_VELOCITY); + BIND_ENUM_CONSTANT(BODY_STATE_ANGULAR_VELOCITY); + BIND_ENUM_CONSTANT(BODY_STATE_SLEEPING); + BIND_ENUM_CONSTANT(BODY_STATE_CAN_SLEEP); + + BIND_ENUM_CONSTANT(JOINT_PIN); + BIND_ENUM_CONSTANT(JOINT_GROOVE); + BIND_ENUM_CONSTANT(JOINT_DAMPED_SPRING); + + BIND_ENUM_CONSTANT(DAMPED_STRING_REST_LENGTH); + BIND_ENUM_CONSTANT(DAMPED_STRING_STIFFNESS); + BIND_ENUM_CONSTANT(DAMPED_STRING_DAMPING); + + BIND_ENUM_CONSTANT(CCD_MODE_DISABLED); + BIND_ENUM_CONSTANT(CCD_MODE_CAST_RAY); + BIND_ENUM_CONSTANT(CCD_MODE_CAST_SHAPE); + + //BIND_ENUM_CONSTANT( TYPE_BODY ); + //BIND_ENUM_CONSTANT( TYPE_AREA ); + + BIND_ENUM_CONSTANT(AREA_BODY_ADDED); + BIND_ENUM_CONSTANT(AREA_BODY_REMOVED); + + BIND_ENUM_CONSTANT(INFO_ACTIVE_OBJECTS); + BIND_ENUM_CONSTANT(INFO_COLLISION_PAIRS); + BIND_ENUM_CONSTANT(INFO_ISLAND_COUNT); } Physics2DServer::Physics2DServer() { diff --git a/servers/physics_2d_server.h b/servers/physics_2d_server.h index f3acd8df18..905f96a5a9 100644 --- a/servers/physics_2d_server.h +++ b/servers/physics_2d_server.h @@ -201,6 +201,8 @@ public: Physics2DDirectSpaceState(); }; +VARIANT_ENUM_CAST(Physics2DDirectSpaceState::ObjectTypeMask); + class Physics2DShapeQueryResult : public Reference { GDCLASS(Physics2DShapeQueryResult, Reference); diff --git a/servers/physics_server.cpp b/servers/physics_server.cpp index 86bf6253ee..c51a59973c 100644 --- a/servers/physics_server.cpp +++ b/servers/physics_server.cpp @@ -349,12 +349,12 @@ void PhysicsDirectSpaceState::_bind_methods() { ClassDB::bind_method(D_METHOD("collide_shape", "shape", "max_results"), &PhysicsDirectSpaceState::_collide_shape, DEFVAL(32)); ClassDB::bind_method(D_METHOD("get_rest_info", "shape"), &PhysicsDirectSpaceState::_get_rest_info); - BIND_CONSTANT(TYPE_MASK_STATIC_BODY); - BIND_CONSTANT(TYPE_MASK_KINEMATIC_BODY); - BIND_CONSTANT(TYPE_MASK_RIGID_BODY); - BIND_CONSTANT(TYPE_MASK_CHARACTER_BODY); - BIND_CONSTANT(TYPE_MASK_AREA); - BIND_CONSTANT(TYPE_MASK_COLLISION); + BIND_ENUM_CONSTANT(TYPE_MASK_STATIC_BODY); + BIND_ENUM_CONSTANT(TYPE_MASK_KINEMATIC_BODY); + BIND_ENUM_CONSTANT(TYPE_MASK_RIGID_BODY); + BIND_ENUM_CONSTANT(TYPE_MASK_CHARACTER_BODY); + BIND_ENUM_CONSTANT(TYPE_MASK_AREA); + BIND_ENUM_CONSTANT(TYPE_MASK_COLLISION); } int PhysicsShapeQueryResult::get_result_count() const { @@ -506,11 +506,11 @@ void PhysicsServer::_bind_methods() { /* JOINT API */ - BIND_CONSTANT(JOINT_PIN); - BIND_CONSTANT(JOINT_HINGE); - BIND_CONSTANT(JOINT_SLIDER); - BIND_CONSTANT(JOINT_CONE_TWIST); - BIND_CONSTANT(JOINT_6DOF); + BIND_ENUM_CONSTANT(JOINT_PIN); + BIND_ENUM_CONSTANT(JOINT_HINGE); + BIND_ENUM_CONSTANT(JOINT_SLIDER); + BIND_ENUM_CONSTANT(JOINT_CONE_TWIST); + BIND_ENUM_CONSTANT(JOINT_6DOF); ClassDB::bind_method(D_METHOD("joint_create_pin", "body_A", "local_A", "body_B", "local_B"), &PhysicsServer::joint_create_pin); ClassDB::bind_method(D_METHOD("pin_joint_set_param", "joint", "param", "value"), &PhysicsServer::pin_joint_set_param); @@ -522,20 +522,21 @@ void PhysicsServer::_bind_methods() { ClassDB::bind_method(D_METHOD("pin_joint_set_local_b", "joint", "local_B"), &PhysicsServer::pin_joint_set_local_b); ClassDB::bind_method(D_METHOD("pin_joint_get_local_b", "joint"), &PhysicsServer::pin_joint_get_local_b); - BIND_CONSTANT(PIN_JOINT_BIAS); - BIND_CONSTANT(PIN_JOINT_DAMPING); - BIND_CONSTANT(PIN_JOINT_IMPULSE_CLAMP); - - BIND_CONSTANT(HINGE_JOINT_BIAS); - BIND_CONSTANT(HINGE_JOINT_LIMIT_UPPER); - BIND_CONSTANT(HINGE_JOINT_LIMIT_LOWER); - BIND_CONSTANT(HINGE_JOINT_LIMIT_BIAS); - BIND_CONSTANT(HINGE_JOINT_LIMIT_SOFTNESS); - BIND_CONSTANT(HINGE_JOINT_LIMIT_RELAXATION); - BIND_CONSTANT(HINGE_JOINT_MOTOR_TARGET_VELOCITY); - BIND_CONSTANT(HINGE_JOINT_MOTOR_MAX_IMPULSE); - BIND_CONSTANT(HINGE_JOINT_FLAG_USE_LIMIT); - BIND_CONSTANT(HINGE_JOINT_FLAG_ENABLE_MOTOR); + BIND_ENUM_CONSTANT(PIN_JOINT_BIAS); + BIND_ENUM_CONSTANT(PIN_JOINT_DAMPING); + BIND_ENUM_CONSTANT(PIN_JOINT_IMPULSE_CLAMP); + + BIND_ENUM_CONSTANT(HINGE_JOINT_BIAS); + BIND_ENUM_CONSTANT(HINGE_JOINT_LIMIT_UPPER); + BIND_ENUM_CONSTANT(HINGE_JOINT_LIMIT_LOWER); + BIND_ENUM_CONSTANT(HINGE_JOINT_LIMIT_BIAS); + BIND_ENUM_CONSTANT(HINGE_JOINT_LIMIT_SOFTNESS); + BIND_ENUM_CONSTANT(HINGE_JOINT_LIMIT_RELAXATION); + BIND_ENUM_CONSTANT(HINGE_JOINT_MOTOR_TARGET_VELOCITY); + BIND_ENUM_CONSTANT(HINGE_JOINT_MOTOR_MAX_IMPULSE); + + BIND_ENUM_CONSTANT(HINGE_JOINT_FLAG_USE_LIMIT); + BIND_ENUM_CONSTANT(HINGE_JOINT_FLAG_ENABLE_MOTOR); ClassDB::bind_method(D_METHOD("joint_create_hinge", "body_A", "hinge_A", "body_B", "hinge_B"), &PhysicsServer::joint_create_hinge); @@ -550,60 +551,60 @@ void PhysicsServer::_bind_methods() { ClassDB::bind_method(D_METHOD("slider_joint_set_param", "joint", "param", "value"), &PhysicsServer::slider_joint_set_param); ClassDB::bind_method(D_METHOD("slider_joint_get_param", "joint", "param"), &PhysicsServer::slider_joint_get_param); - BIND_CONSTANT(SLIDER_JOINT_LINEAR_LIMIT_UPPER); - BIND_CONSTANT(SLIDER_JOINT_LINEAR_LIMIT_LOWER); - BIND_CONSTANT(SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS); - BIND_CONSTANT(SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION); - BIND_CONSTANT(SLIDER_JOINT_LINEAR_LIMIT_DAMPING); - BIND_CONSTANT(SLIDER_JOINT_LINEAR_MOTION_SOFTNESS); - BIND_CONSTANT(SLIDER_JOINT_LINEAR_MOTION_RESTITUTION); - BIND_CONSTANT(SLIDER_JOINT_LINEAR_MOTION_DAMPING); - BIND_CONSTANT(SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS); - BIND_CONSTANT(SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION); - BIND_CONSTANT(SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING); - - BIND_CONSTANT(SLIDER_JOINT_ANGULAR_LIMIT_UPPER); - BIND_CONSTANT(SLIDER_JOINT_ANGULAR_LIMIT_LOWER); - BIND_CONSTANT(SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS); - BIND_CONSTANT(SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION); - BIND_CONSTANT(SLIDER_JOINT_ANGULAR_LIMIT_DAMPING); - BIND_CONSTANT(SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS); - BIND_CONSTANT(SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION); - BIND_CONSTANT(SLIDER_JOINT_ANGULAR_MOTION_DAMPING); - BIND_CONSTANT(SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS); - BIND_CONSTANT(SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION); - BIND_CONSTANT(SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING); - BIND_CONSTANT(SLIDER_JOINT_MAX); + BIND_ENUM_CONSTANT(SLIDER_JOINT_LINEAR_LIMIT_UPPER); + BIND_ENUM_CONSTANT(SLIDER_JOINT_LINEAR_LIMIT_LOWER); + BIND_ENUM_CONSTANT(SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS); + BIND_ENUM_CONSTANT(SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION); + BIND_ENUM_CONSTANT(SLIDER_JOINT_LINEAR_LIMIT_DAMPING); + BIND_ENUM_CONSTANT(SLIDER_JOINT_LINEAR_MOTION_SOFTNESS); + BIND_ENUM_CONSTANT(SLIDER_JOINT_LINEAR_MOTION_RESTITUTION); + BIND_ENUM_CONSTANT(SLIDER_JOINT_LINEAR_MOTION_DAMPING); + BIND_ENUM_CONSTANT(SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS); + BIND_ENUM_CONSTANT(SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION); + BIND_ENUM_CONSTANT(SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING); + + BIND_ENUM_CONSTANT(SLIDER_JOINT_ANGULAR_LIMIT_UPPER); + BIND_ENUM_CONSTANT(SLIDER_JOINT_ANGULAR_LIMIT_LOWER); + BIND_ENUM_CONSTANT(SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS); + BIND_ENUM_CONSTANT(SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION); + BIND_ENUM_CONSTANT(SLIDER_JOINT_ANGULAR_LIMIT_DAMPING); + BIND_ENUM_CONSTANT(SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS); + BIND_ENUM_CONSTANT(SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION); + BIND_ENUM_CONSTANT(SLIDER_JOINT_ANGULAR_MOTION_DAMPING); + BIND_ENUM_CONSTANT(SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS); + BIND_ENUM_CONSTANT(SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION); + BIND_ENUM_CONSTANT(SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING); + BIND_ENUM_CONSTANT(SLIDER_JOINT_MAX); ClassDB::bind_method(D_METHOD("joint_create_cone_twist", "body_A", "local_ref_A", "body_B", "local_ref_B"), &PhysicsServer::joint_create_cone_twist); ClassDB::bind_method(D_METHOD("cone_twist_joint_set_param", "joint", "param", "value"), &PhysicsServer::cone_twist_joint_set_param); ClassDB::bind_method(D_METHOD("cone_twist_joint_get_param", "joint", "param"), &PhysicsServer::cone_twist_joint_get_param); - BIND_CONSTANT(CONE_TWIST_JOINT_SWING_SPAN); - BIND_CONSTANT(CONE_TWIST_JOINT_TWIST_SPAN); - BIND_CONSTANT(CONE_TWIST_JOINT_BIAS); - BIND_CONSTANT(CONE_TWIST_JOINT_SOFTNESS); - BIND_CONSTANT(CONE_TWIST_JOINT_RELAXATION); - - BIND_CONSTANT(G6DOF_JOINT_LINEAR_LOWER_LIMIT); - BIND_CONSTANT(G6DOF_JOINT_LINEAR_UPPER_LIMIT); - BIND_CONSTANT(G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS); - BIND_CONSTANT(G6DOF_JOINT_LINEAR_RESTITUTION); - BIND_CONSTANT(G6DOF_JOINT_LINEAR_DAMPING); - BIND_CONSTANT(G6DOF_JOINT_ANGULAR_LOWER_LIMIT); - BIND_CONSTANT(G6DOF_JOINT_ANGULAR_UPPER_LIMIT); - BIND_CONSTANT(G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS); - BIND_CONSTANT(G6DOF_JOINT_ANGULAR_DAMPING); - BIND_CONSTANT(G6DOF_JOINT_ANGULAR_RESTITUTION); - BIND_CONSTANT(G6DOF_JOINT_ANGULAR_FORCE_LIMIT); - BIND_CONSTANT(G6DOF_JOINT_ANGULAR_ERP); - BIND_CONSTANT(G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY); - BIND_CONSTANT(G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT); - - BIND_CONSTANT(G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT); - BIND_CONSTANT(G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT); - BIND_CONSTANT(G6DOF_JOINT_FLAG_ENABLE_MOTOR); + BIND_ENUM_CONSTANT(CONE_TWIST_JOINT_SWING_SPAN); + BIND_ENUM_CONSTANT(CONE_TWIST_JOINT_TWIST_SPAN); + BIND_ENUM_CONSTANT(CONE_TWIST_JOINT_BIAS); + BIND_ENUM_CONSTANT(CONE_TWIST_JOINT_SOFTNESS); + BIND_ENUM_CONSTANT(CONE_TWIST_JOINT_RELAXATION); + + BIND_ENUM_CONSTANT(G6DOF_JOINT_LINEAR_LOWER_LIMIT); + BIND_ENUM_CONSTANT(G6DOF_JOINT_LINEAR_UPPER_LIMIT); + BIND_ENUM_CONSTANT(G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS); + BIND_ENUM_CONSTANT(G6DOF_JOINT_LINEAR_RESTITUTION); + BIND_ENUM_CONSTANT(G6DOF_JOINT_LINEAR_DAMPING); + BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_LOWER_LIMIT); + BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_UPPER_LIMIT); + BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS); + BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_DAMPING); + BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_RESTITUTION); + BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_FORCE_LIMIT); + BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_ERP); + BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY); + BIND_ENUM_CONSTANT(G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT); + + BIND_ENUM_CONSTANT(G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT); + BIND_ENUM_CONSTANT(G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT); + BIND_ENUM_CONSTANT(G6DOF_JOINT_FLAG_ENABLE_MOTOR); ClassDB::bind_method(D_METHOD("joint_get_type", "joint"), &PhysicsServer::joint_get_type); @@ -642,67 +643,67 @@ void PhysicsServer::_bind_methods() { ClassDB::bind_method(D_METHOD("get_process_info", "process_info"), &PhysicsServer::get_process_info); - BIND_CONSTANT(SHAPE_PLANE); - BIND_CONSTANT(SHAPE_RAY); - BIND_CONSTANT(SHAPE_SPHERE); - BIND_CONSTANT(SHAPE_BOX); - BIND_CONSTANT(SHAPE_CAPSULE); - BIND_CONSTANT(SHAPE_CONVEX_POLYGON); - BIND_CONSTANT(SHAPE_CONCAVE_POLYGON); - BIND_CONSTANT(SHAPE_HEIGHTMAP); - BIND_CONSTANT(SHAPE_CUSTOM); - - BIND_CONSTANT(AREA_PARAM_GRAVITY); - BIND_CONSTANT(AREA_PARAM_GRAVITY_VECTOR); - BIND_CONSTANT(AREA_PARAM_GRAVITY_IS_POINT); - BIND_CONSTANT(AREA_PARAM_GRAVITY_DISTANCE_SCALE); - BIND_CONSTANT(AREA_PARAM_GRAVITY_POINT_ATTENUATION); - BIND_CONSTANT(AREA_PARAM_LINEAR_DAMP); - BIND_CONSTANT(AREA_PARAM_ANGULAR_DAMP); - BIND_CONSTANT(AREA_PARAM_PRIORITY); - - BIND_CONSTANT(AREA_SPACE_OVERRIDE_DISABLED); - BIND_CONSTANT(AREA_SPACE_OVERRIDE_COMBINE); - BIND_CONSTANT(AREA_SPACE_OVERRIDE_COMBINE_REPLACE); - BIND_CONSTANT(AREA_SPACE_OVERRIDE_REPLACE); - BIND_CONSTANT(AREA_SPACE_OVERRIDE_REPLACE_COMBINE); - - BIND_CONSTANT(BODY_MODE_STATIC); - BIND_CONSTANT(BODY_MODE_KINEMATIC); - BIND_CONSTANT(BODY_MODE_RIGID); - BIND_CONSTANT(BODY_MODE_CHARACTER); - - BIND_CONSTANT(BODY_PARAM_BOUNCE); - BIND_CONSTANT(BODY_PARAM_FRICTION); - BIND_CONSTANT(BODY_PARAM_MASS); - BIND_CONSTANT(BODY_PARAM_GRAVITY_SCALE); - BIND_CONSTANT(BODY_PARAM_ANGULAR_DAMP); - BIND_CONSTANT(BODY_PARAM_LINEAR_DAMP); - BIND_CONSTANT(BODY_PARAM_MAX); - - BIND_CONSTANT(BODY_STATE_TRANSFORM); - BIND_CONSTANT(BODY_STATE_LINEAR_VELOCITY); - BIND_CONSTANT(BODY_STATE_ANGULAR_VELOCITY); - BIND_CONSTANT(BODY_STATE_SLEEPING); - BIND_CONSTANT(BODY_STATE_CAN_SLEEP); + BIND_ENUM_CONSTANT(SHAPE_PLANE); + BIND_ENUM_CONSTANT(SHAPE_RAY); + BIND_ENUM_CONSTANT(SHAPE_SPHERE); + BIND_ENUM_CONSTANT(SHAPE_BOX); + BIND_ENUM_CONSTANT(SHAPE_CAPSULE); + BIND_ENUM_CONSTANT(SHAPE_CONVEX_POLYGON); + BIND_ENUM_CONSTANT(SHAPE_CONCAVE_POLYGON); + BIND_ENUM_CONSTANT(SHAPE_HEIGHTMAP); + BIND_ENUM_CONSTANT(SHAPE_CUSTOM); + + BIND_ENUM_CONSTANT(AREA_PARAM_GRAVITY); + BIND_ENUM_CONSTANT(AREA_PARAM_GRAVITY_VECTOR); + BIND_ENUM_CONSTANT(AREA_PARAM_GRAVITY_IS_POINT); + BIND_ENUM_CONSTANT(AREA_PARAM_GRAVITY_DISTANCE_SCALE); + BIND_ENUM_CONSTANT(AREA_PARAM_GRAVITY_POINT_ATTENUATION); + BIND_ENUM_CONSTANT(AREA_PARAM_LINEAR_DAMP); + BIND_ENUM_CONSTANT(AREA_PARAM_ANGULAR_DAMP); + BIND_ENUM_CONSTANT(AREA_PARAM_PRIORITY); + + BIND_ENUM_CONSTANT(AREA_SPACE_OVERRIDE_DISABLED); + BIND_ENUM_CONSTANT(AREA_SPACE_OVERRIDE_COMBINE); + BIND_ENUM_CONSTANT(AREA_SPACE_OVERRIDE_COMBINE_REPLACE); + BIND_ENUM_CONSTANT(AREA_SPACE_OVERRIDE_REPLACE); + BIND_ENUM_CONSTANT(AREA_SPACE_OVERRIDE_REPLACE_COMBINE); + + BIND_ENUM_CONSTANT(BODY_MODE_STATIC); + BIND_ENUM_CONSTANT(BODY_MODE_KINEMATIC); + BIND_ENUM_CONSTANT(BODY_MODE_RIGID); + BIND_ENUM_CONSTANT(BODY_MODE_CHARACTER); + + BIND_ENUM_CONSTANT(BODY_PARAM_BOUNCE); + BIND_ENUM_CONSTANT(BODY_PARAM_FRICTION); + BIND_ENUM_CONSTANT(BODY_PARAM_MASS); + BIND_ENUM_CONSTANT(BODY_PARAM_GRAVITY_SCALE); + BIND_ENUM_CONSTANT(BODY_PARAM_ANGULAR_DAMP); + BIND_ENUM_CONSTANT(BODY_PARAM_LINEAR_DAMP); + BIND_ENUM_CONSTANT(BODY_PARAM_MAX); + + BIND_ENUM_CONSTANT(BODY_STATE_TRANSFORM); + BIND_ENUM_CONSTANT(BODY_STATE_LINEAR_VELOCITY); + BIND_ENUM_CONSTANT(BODY_STATE_ANGULAR_VELOCITY); + BIND_ENUM_CONSTANT(BODY_STATE_SLEEPING); + BIND_ENUM_CONSTANT(BODY_STATE_CAN_SLEEP); /* - BIND_CONSTANT( JOINT_PIN ); - BIND_CONSTANT( JOINT_GROOVE ); - BIND_CONSTANT( JOINT_DAMPED_SPRING ); + BIND_ENUM_CONSTANT( JOINT_PIN ); + BIND_ENUM_CONSTANT( JOINT_GROOVE ); + BIND_ENUM_CONSTANT( JOINT_DAMPED_SPRING ); - BIND_CONSTANT( DAMPED_STRING_REST_LENGTH ); - BIND_CONSTANT( DAMPED_STRING_STIFFNESS ); - BIND_CONSTANT( DAMPED_STRING_DAMPING ); + BIND_ENUM_CONSTANT( DAMPED_STRING_REST_LENGTH ); + BIND_ENUM_CONSTANT( DAMPED_STRING_STIFFNESS ); + BIND_ENUM_CONSTANT( DAMPED_STRING_DAMPING ); */ - //BIND_CONSTANT( TYPE_BODY ); - //BIND_CONSTANT( TYPE_AREA ); + //BIND_ENUM_CONSTANT( TYPE_BODY ); + //BIND_ENUM_CONSTANT( TYPE_AREA ); - BIND_CONSTANT(AREA_BODY_ADDED); - BIND_CONSTANT(AREA_BODY_REMOVED); + BIND_ENUM_CONSTANT(AREA_BODY_ADDED); + BIND_ENUM_CONSTANT(AREA_BODY_REMOVED); - BIND_CONSTANT(INFO_ACTIVE_OBJECTS); - BIND_CONSTANT(INFO_COLLISION_PAIRS); - BIND_CONSTANT(INFO_ISLAND_COUNT); + BIND_ENUM_CONSTANT(INFO_ACTIVE_OBJECTS); + BIND_ENUM_CONSTANT(INFO_COLLISION_PAIRS); + BIND_ENUM_CONSTANT(INFO_ISLAND_COUNT); } PhysicsServer::PhysicsServer() { diff --git a/servers/physics_server.h b/servers/physics_server.h index b38e14eb0c..a8c2a7761d 100644 --- a/servers/physics_server.h +++ b/servers/physics_server.h @@ -201,6 +201,8 @@ public: PhysicsDirectSpaceState(); }; +VARIANT_ENUM_CAST(PhysicsDirectSpaceState::ObjectTypeMask); + class PhysicsShapeQueryResult : public Reference { GDCLASS(PhysicsShapeQueryResult, Reference); |