summaryrefslogtreecommitdiffstats
path: root/core/extension/gdnative_interface.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Rename all gdnative occurences to gdextensionGilles Roudière2022-12-121-1083/+0
| | | | | | | | | | | | | Non-exhaustive list of case-sensitive renames: GDExtension -> GDNative GDNATIVE -> GDEXTENSION gdextension -> gdnative ExtensionExtension ->Extension (for where there was GDNativeExtension) EXTENSION_EXTENSION ->EXTENSION (for where there was GDNATIVE_EXTENSION) gdnlib -> gdextension gdn_interface -> gde_interface gdni -> gde_interface
* Fix const qualifier for parameters in GDExtension api functionsEmmanuel Leblond2022-12-021-67/+67
|
* Uses `StringName` in GDExtension perf critical instance creation & ↵Emmanuel Leblond2022-11-081-30/+39
| | | | method/properties setter/getter
* Use `constexpr` in the conditions with template parameters and `sizeof`s to ↵bruvzg2022-09-291-3/+3
| | | | suppress C4127 warnings.
* Fix hash mismatch error print in gdextension's gdnative_classdb_get_method_bindEmmanuel Leblond2022-09-211-1/+1
|
* Move some methods to Animation from Variant for refactoringSilc Renew2022-09-151-24/+0
|
* Implement Vector4, Vector4i, Projectionreduz2022-07-231-0/+12
| | | | | | | | | | | | | 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.
* [GDExtension] Expose Variant, NodePath and StringName hash functions.bruvzg2022-06-061-0/+12
|
* Add GDNativeInterface::get_library_path to GDExtensionEmmanuel Leblond2022-04-291-0/+2
|
* Make blend animation to use ResetTrack as default valueSilc 'Tokage' Renew2022-04-101-0/+8
|
* Add GDExtension support to Scriptreduz2022-03-271-0/+12
| | | | | | | | | * 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).
* Create GDExtension clases for PhysicsServer3Dreduz2022-03-151-0/+6
| | | | | | | * 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.
* 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.
* Update copyright statements to 2022Rémi Verschelde2022-01-031-2/+2
| | | | Happy new year to the wonderful Godot community!
* Change gdnative interface so that Godot object initialization should be ↵Gilles Roudière2021-11-301-18/+12
| | | | triggered from the extension side
* [GDExtension] Implement missing Dictionary index operators.bruvzg2021-11-221-0/+17
| | | | Co-authored-by: Bastiaan Olij <mux213@gmail.com>
* Fix array access in gdextensionsBastiaan Olij2021-11-171-2/+2
|
* Implement toast notifications in the editorGilles Roudière2021-10-141-3/+3
|
* [ClassDB] Unify construct/extension retrieval.Fabio Alessandrelli2021-09-221-13/+7
|
* [Core] Add ClassDB functions to retrieve/construct extensions.Fabio Alessandrelli2021-09-221-0/+14
| | | | | | | | | Calling the constructor alone is not enough if the class to be instantiated is not a base class. This commit adds two functions, one for retrieving the the extension class reference, the other to construct an instance using the constructor and the extension class reference.
* Merge pull request #52739 from BastiaanOlij/gdextension_array_indexRémi Verschelde2021-09-161-0/+15
|\
| * Add GD extensions operator functions for arraysBastiaan Olij2021-09-161-0/+15
| |
* | Add property group and subgroup registration to extensionsBastiaan Olij2021-09-161-0/+2
|/
* Add functions for access members by index on packed array objectsBastiaan Olij2021-09-021-0/+136
|
* A few fixes in the extension C APIGeorge Marques2021-08-171-1/+18
| | | | | | | | - Add MethodBind call (besides ptrcall), since vararg methods don't work with ptrcall. - Fix argument name in register constant function to the way it actually is used in the engine. - Change the integer constant type to GDNativeInt to keep it consistent.
* Refactors the memnew_placement.AndreaCatania2021-08-131-13/+11
| | | | | | | | | | | | | | | | | | | With this commit the macro `memnew_placement` uses the standard memory placement syntax: `new (mem) TheClass()`, and removes the outdated and not used syntax: ``` _ALWAYS_INLINE_ void *operator new(size_t p_size, void *p_pointer, size_t check, const char *p_description) { ``` Thanks to this change, the function `memnew_placement` call is compatible with any class, and can also initialize classes with non-empty constructor: ``` // This is valid, like before. memnew_placement(mem, Variant); // This works too: memnew_placement(mem, Variant(123)); ```
* Improve extension systemGeorge Marques2021-08-051-6/+170
| | | | | | | - Fix library loading and initialization. - Add extra methods/parameters in the interface needed by extenstions. - Add Variant destructors and functions for extracting values and creating Variants from values.
* Fix dead code in `gdnative_interface.cpp`Nicholas Huelin2021-07-251-1/+2
| | | This pull request fixes dead code found in `gdnative_interface.cpp`
* Redo how instance bindings workreduz2021-07-081-0/+6
| | | | | | | | * 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.
* Implement native extension systemreduz2021-06-251-0/+688
* 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