summaryrefslogtreecommitdiffstats
path: root/core/extension
Commit message (Collapse)AuthorAgeFilesLines
* Move some methods to Animation from Variant for refactoringSilc Renew2022-09-152-27/+0
|
* Rename String `plus_file` to `path_join`Aaron Franke2022-08-291-2/+2
|
* Merge pull request #64690 from ↵Rémi Verschelde2022-08-231-1/+6
|\ | | | | | | touilleMan/projection-members-offsets-in-gdentension-api
| * Add missing Projection's members offsets to gdextension_api.jsonEmmanuel Leblond2022-08-211-1/+6
| |
* | Ignore fake properties in classes when generating extension_api.jsonEmmanuel Leblond2022-08-221-1/+8
|/ | | | | | | | | In extension_api.json we want to expose properties that are meant to access a class attribute from script (i.e. `Node2D.position`). However property system is also used in Godot to declare attributes accessible from the node editor: - property with '/' in their name - property array with NIL type that represents an array
* Make `property_*_revert` methods multilevel and expose them for scriptingYuri Sizov2022-08-182-0/+12
|
* Print expected `os.arch` tuple for current platform in GDExtension errorHugo Locurcio2022-08-081-3/+4
| | | | | This also adds `Engine.get_architecture_name()` to get the name of the CPU architecture the Godot binary was built for.
* Code quality: Fix header guards consistencyRémi Verschelde2022-07-254-6/+6
| | | | | Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
* Implement Vector4, Vector4i, Projectionreduz2022-07-233-0/+29
| | | | | | | | | | | | | Implement built-in classes Vector4, Vector4i and Projection. * Two versions of Vector4 (float and integer). * A Projection class, which is a 4x4 matrix specialized in projection types. These types have been requested for a long time, but given they were very corner case they were not added before. Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity. **Q**: Why Projection and not Matrix4? **A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
* Changed bool to GdNativeBoolbasta2022-07-163-3/+3
|
* Use BitField hint for the TextServer enums. Add missing parts for BitField ↵bruvzg2022-07-154-5/+8
| | | | support to the GDextension API.
* Remove unused hintskobewi2022-07-121-7/+4
|
* Implement a BitField hintreduz2022-07-051-1/+2
| | | | Allows to specify the binder that an enum must be treated as a bitfield.
* GDExtension: reuse code with constructor PropertyInfo(const ↵Jan Haller2022-06-291-23/+5
| | | | GDNativePropertyInfo&)
* Add a const call mode to Object, Variant and Script.K. S. Ernest (iFire) Lee2022-06-271-1/+1
| | | | | | | For this to work safely (user not call queue_free or something in the expression), a const call mode was added to Object and Variant (and optionally Script). This mode ensures only const functions can be called, making it safe to use from the editor. Co-Authored-By: reduz <reduzio@gmail.com>
* Add core types enums description to extension api jsonPierre-Thomas Meisels2022-06-231-0/+32
|
* GDExtension: print error messages for different error paths during loadingJan Haller2022-06-191-0/+7
|
* Make enum/constant binds 64-bit.bruvzg2022-06-171-5/+5
|
* Fix NativeExtension::open_library return value when the undelying lib fails ↵Emmanuel Leblond2022-06-121-3/+6
| | | | to initialize
* [GDExtension] Expose Variant, NodePath and StringName hash functions.bruvzg2022-06-062-0/+14
|
* Replace most uses of Map by HashMapreduz2022-05-164-5/+5
| | | | | | | | | | | | * Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
* Implement exponential operator (**) to GDScript/ExpressionsYuri Roubinsky2022-05-111-0/+1
|
* Merge pull request #55876 from bradc6/feature/AllowForAbsoluteLibraryPathsRémi Verschelde2022-05-101-1/+1
|\
| * If a gdextension library filepath is an absolute path do not attempt to ↵Bradley Clemetson2021-12-231-1/+1
| | | | | | | | | | | | append the base directory on top of that. While this is a uncommon if not unused case for a release version it is helpful for development builds. Fix formatting
* | Merge pull request #60886 from ↵Rémi Verschelde2022-05-081-2/+0
|\ \ | | | | | | | | | | | | touilleMan/gdextension-header-duplicated-GDNativeExtensionClassGetPropertyList Fix duplication of GDNativeExtensionClassGetPropertyList definition in gdnative_interface.h
| * | Fix duplication of GDNativeExtensionClassGetPropertyList definition in ↵Emmanuel Leblond2022-05-081-2/+0
| | | | | | | | | | | | gdnative_interface.h
* | | Fix extension_api.json builtin_class_member_offsets member names for ColorEmmanuel Leblond2022-05-081-4/+4
|/ /
* | [GDExtension] Fix static method binds and default arguments.bruvzg2022-05-061-2/+13
| |
* | Merge pull request #60723 from reduz/refactor-module-initializationRémi Verschelde2022-05-043-7/+4
|\ \
| * | Refactor module initializationreduz2022-05-043-7/+4
| | | | | | | | | | | | | | | | | | | | | * Changed to use the same stages as extensions. * Makes the initialization more coherent, helping solve problems due to lack of stages. * Makes it easier to port between module and extension. * removed the DRIVER initialization level (no longer needed).
* | | Merge pull request #60714 from Calinou/typedef-remove-refRémi Verschelde2022-05-032-6/+6
|\ \ \ | |/ / |/| | Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`
| * | Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`Hugo Locurcio2022-05-032-6/+6
| | | | | | | | | | | | | | | | | | These typedefs don't save much typing compared to the full `Ref<Resource>` and `Ref<RefCounted>`, yet they sometimes introduce confusion among new contributors.
* | | Add GDNativeInterface::get_library_path to GDExtensionEmmanuel Leblond2022-04-294-1/+15
|/ /
* | Fix more issues found by cppcheck.bruvzg2022-04-201-7/+9
| |
* | Merge pull request #60093 from TokageItLab/reset-blendRémi Verschelde2022-04-132-0/+9
|\ \ | | | | | | Make blend animation to use ResetTrack as default value
| * | Make blend animation to use ResetTrack as default valueSilc 'Tokage' Renew2022-04-102-0/+9
| | |
* | | Make FileAccess and DirAccess classes reference counted.bruvzg2022-04-112-4/+3
|/ /
* | Fix some issues found by cppcheck.bruvzg2022-04-061-8/+8
| |
* | Merge pull request #59553 from reduz/script-extension-supportRémi Verschelde2022-03-284-0/+199
|\ \
| * | Add GDExtension support to Scriptreduz2022-03-274-0/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Ability to create script languages from GDExtension * Some additions to gdnative_extension.h to make this happen * Moved the GDExtension binder to core This now allows creating scripting languages from GDExtension, with the same ease as if it was a module. It replaces the old PluginScript from Godot 3.x. Warning: GodotCPP will need to be updated to support this (it may be a bit of work as ScriptInstance needs to be created over there again).
* | | GDExtension: change to_string signature to accept GDNativeStringPtr instead ↵Jan Haller2022-03-271-1/+1
|/ / | | | | | | of returning const char*
* | Add static method support to ClassDBreduz2022-03-221-0/+2
| | | | | | | | | | | | | | | | | | * Based on the work done for Variant in the past. * Added `ClassDB::bind_static_method` * Cleaned up ClassDB::bind_method to use variadic templates. This adds support for having static methods in Object derived classes. Note that this does not make it work yet in GDScript or Mono and, while it works for GDExtension, GodotCPP needs to be updated.
* | Create GDExtension clases for PhysicsServer3Dreduz2022-03-153-18/+15
| | | | | | | | | | | | | | * Allows creating a GDExtension based 3D Physics Server (for Bullet, PhysX, etc. support) * Some changes on native struct binding for PhysicsServer This allows a 3D Physics server created entirely from GDExtension. Once it works, the idea is to port the 2D one to it.
* | Discern between virtual and abstract class bindingsreduz2022-03-102-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Previous "virtual" classes (which can't be instantiated) are not corretly named "abstract". * Added a new "virtual" category for classes, they can't be instantiated from the editor, but can be inherited from script and extensions. * Converted a large amount of classes from "abstract" to "virtual" where it makes sense. Most classes that make sense have been converted. Missing: * Physics servers * VideoStream * Script* classes. which will go in a separate PR due to the complexity involved.
* | Remove VARIANT_ARG* macrosreduz2022-03-091-2/+2
| | | | | | | | | | | | | | | | * Very old macros from the time Godot was created. * Limited arguments to 5 (then later changed to 8) in many places. * They were replaced by C++11 Variadic Templates. * Renamed methods that take argument pointers to have a "p" suffix. This was used in some places and not in others, so made it standard. * Also added a dereference check for Variant*. Helped catch a couple of bugs.
* | Reorder native extension types initialization, initializing editor lastGilles Roudière2022-02-283-2/+3
| |
* | Merge pull request #58331 from poiati/fix-extension-registration-order-2Rémi Verschelde2022-02-221-1/+2
|\ \
| * | Fix extension registration order.Paulo Poiati2022-02-201-1/+2
| | |
* | | Resolving suggestions on comment formatting.Anish Bhobe2022-02-201-4/+4
| | |
* | | Fixing iteration for extension level loading.Anish Bhobe2022-02-201-4/+4
|/ / | | | | Extensions are not getting instantiating properly due to iteration calling the wrong levels for loading.