summaryrefslogtreecommitdiff
path: root/core/object/object.cpp
AgeCommit message (Collapse)Author
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-09Replace String comparisons with "", String() to is_empty()Nathan Franke
Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
2021-11-30Change gdnative interface so that Godot object initialization should be ↵Gilles Roudière
triggered from the extension side
2021-11-17Fix the exceptions in signal disconnectionXwdit
Use the correct method to get SignalData to fix exceptions in signal disconnection
2021-11-14Merge pull request #53710 from ↵Hugo Locurcio
CaptainProton42/fix-extension-class-inspector-properties
2021-11-04Add is_built_in() method to Resourcekobewi
2021-11-03Rename `PROPERTY_USAGE_NOEDITOR` to `PROPERTY_USAGE_NO_EDITOR`Hugo Locurcio
This is consistent with other constants that include `NO`, such as `PROPERTY_HINT_COLOR_NO_ALPHA`.
2021-10-28clang-format: Disable alignment of operands, too unreliableRémi Verschelde
Sets `AlignOperands` to `DontAlign`. `clang-format` developers seem to mostly care about space-based indentation and every other version of clang-format breaks the bad mismatch of tabs and spaces that it seems to use for operand alignment. So it's better without, so that it respects our two-tabs `ContinuationIndentWidth`.
2021-10-12Fetch extension class props from ClassDBCaptainProton42
Extension class properties that have been registered with ClassDB(`GDNativeInterface::classdb_register_extension_class_property`) were not fetched previously. (Only directly providing a property list using `GDNativeExtensionClassCreationInfo::get_property_list_func` would work.) This especially caused problems with the C++ bindings since they exclusively rely on ClassDB to register properties.
2021-10-01Merge pull request #47442 from Shatur/fix-connect-reference-countedRémi Verschelde
2021-08-22Replace BIND_VMETHOD by new GDVIRTUAL syntaxreduz
* New syntax is type safe. * New syntax allows for type safe virtuals in native extensions. * New syntax permits extremely fast calling. Note: Everything was replaced where possible except for `_gui_input` `_input` and `_unhandled_input`. These will require API rework on a separate PR as they work different than the rest of the functions. Added a new method flag METHOD_FLAG_OBJECT_CORE, used internally. Allows to not dump the core virtuals like `_notification` to the json API, since each language will implement those as it is best fits.
2021-08-16Fix C# native instance bindings after recent re-writeIgnacio Roldán Etcheverry
This was needed after: 44691448911f1d29d4d79dbdd5553734761e57c4
2021-08-05Add a instance callback for extensionsGeorge Marques
This sends the Godot object instance back to the extension so they can keep a pointer for function calls. Incidentally fix argument order on instance bindings callback for free()
2021-07-25Use const references where possible for List range iteratorsRémi Verschelde
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-22Make Object "meta" functions take StringName.Fabio Alessandrelli
The various get_meta, set_meta, has_meta, get_meta_list, remove_meta functions now uses StringName, allowing further optimizations via the SNAME macro when used from C++ (this PR does not change the various usage though).
2021-07-15Add ability to set object instance binding on creationreduz
* Required by binding generators * Makes it easier to create the bindings on construction.
2021-07-08Redo how instance bindings workreduz
* The harcoded 8 slots are no more and impose limits in the new extension system. * New system is limitless, although it will impose small performance hit with a mutex. * Use a token to request the instance binding. **Warning**: Mono will most likely break as a result of this, will need to be modified to use the new system.
2021-06-25Implement native extension systemreduz
* Deprecates GDNative in favor of a simpler, lower level interface. * New extension system allows registering core engine classes. * Simple header interface in gdnative_interace.h
2021-06-21Improved some error messages (from ERR_FAIL_*) in Object.Eric M
2021-06-19Rename `instance()`->`instantiate()` when it's a verbLightning_A
2021-06-11Rename Reference to RefCountedPedro J. Estébanez
2021-06-04Add API for registering native extensionsreduz
* First step for GDNative to behave more like modules * Only Object and ClassDB, the rest needs to happen on the GDNative side.
2021-05-20Fix typos with codespellRémi Verschelde
Using codespell 2.0.0. Method: ``` $ cat > ../godot-word-whitelist.txt << EOF ang curvelinear dof doubleclick fave findn GIRD leapyear lod merchantibility nd numer ois ony que seeked synching te uint unselect webp EOF $ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po" $ git diff // undo unwanted changes ```
2021-03-28Fix CONNECT_REFERENCE_COUNTEDShatur95
2021-03-12Fixes small typos and grammar correctionAnshul7sp1
2021-02-18Modernize atomicsPedro J. Estébanez
- Based on C++11's `atomic` - Reworked `SafeRefCount` (based on the rewrite by @hpvb) - Replaced free atomic functions by the new `SafeNumeric<T>` - Replaced wrong cases of `volatile bool` by the new `SafeFlag` - Platform-specific implementations no longer needed Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-10Removed _change_notifyreduz
-For inspector refresh, the inspector now detects if a property change by polling a few times per second and then does update the control if so. This process is very cheap. -For property list refresh, a new signal (property_list_changed) was added to Object. _change_notify() is replaced by notify_property_list_changed() -Changed all objects using the old method to the signal, or just deleted the calls to _change_notify(<property>) since they are unnecesary now.
2021-01-01Merge pull request #44848 from mrushyendra/disconnect_err_msgRémi Verschelde
Issue correct error when disconnecting nonexistent connection with a valid signal
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2021-01-01Issue more precise error when disconnecting a nonexistent connectionMaganty Rushyendra
Checks whether the signal exists when issuing an error message when disconnecting a nonexistent connection. Also prints the callable name.
2020-12-28Rename empty() to is_empty()Marcel Admiraal
2020-12-09Cleanup unused engine codeTomasz Chabora
2020-12-05Remove connect *_compat methodsAaron Franke
2020-11-17Fix crash when printing leaked nodesRafał Mikrut
2020-11-15Remove property groups for Pause Mode and ScriptHugo Locurcio
Each of those only grouped 1 property, making them useless. This closes https://github.com/godotengine/godot-proposals/issues/1840.
2020-11-09Refactored variant constructor logicreduz
2020-11-07Reorganized core/ directory, it was too fatty alreadyreduz
-Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code