Rémi Verschelde
83b426bca5
Merge pull request #67906 from groud/simpler_gdextension_config
...
Remove unnecessary checks when exporting gdextension binaries and allow using a prefix to auto-detect files
2022-12-06 11:01:09 +01:00
Emmanuel Leblond
61c900ac6f
Fix const qualifier for parameters in GDExtension api functions
2022-12-02 23:00:01 +01:00
Gilles Roudière
fa4143cdeb
Allow specifying a prefix to automatically detect library files for gdextension exports
2022-12-01 18:20:40 +01:00
Rémi Verschelde
96796c1518
Merge pull request #64427 from touilleMan/gdextension-skip-undefined-field-in-properties
...
[GDExtension] Skip unset getter/setter/index fields in class property
2022-12-01 18:10:26 +01:00
Rémi Verschelde
fc2241d5d8
Merge pull request #64360 from touilleMan/gdextension-correct-rect2-members-offsets-declaration
...
[GDExtension] Correct Rect2 members offsets declaration in extension_api.json generator
2022-12-01 18:10:05 +01:00
Jan Haller
09f84102e3
Extension header: fix typos, documentation and member order
2022-11-16 00:51:48 +01:00
Emmanuel Leblond
a2e6e996b2
Skip unset getter/setter/index fields in class property when generating extension_api.json
2022-11-12 20:13:00 +01:00
Emmanuel Leblond
ce11ba2e30
Correct Rect2 members offsets declaration in extension_api.json generator
2022-11-12 20:12:04 +01:00
Emmanuel Leblond
39c039a363
Revert removal of GDNativeExtensionScriptInstanceInfo::get_property_type_func in GDExtension
...
This function pointer is needed to stay close to internal Godot's ScriptInstance class.
Besides, by removing this function pointer, we had to do property list create/free each time
we want to access type which is quadratic complexity :/
2022-11-12 04:18:21 +01:00
Emmanuel Leblond
1e8756c94b
Use StringName in the whole GDExtension API instead of const char *
2022-11-08 21:44:07 +01:00
Emmanuel Leblond
84262efd2a
Uses `StringName` in GDExtension perf critical instance creation & method/properties setter/getter
2022-11-08 21:44:07 +01:00
Rémi Verschelde
669888b9cf
GDExtension: Ensure newline at EOF
2022-11-07 14:32:43 +01:00
Rémi Verschelde
6946bc56ef
Merge pull request #67309 from groud/implement_gdnative_interface_h_dump
...
Implement a way to dump the gdnative_interface.h file from the executable
2022-10-31 11:54:38 +01:00
Ricardo Buring
1d5aa74ac3
GDExtension: add support for abstract and virtual classes
2022-10-16 09:02:49 +02:00
Rémi Verschelde
99bc4905cb
Merge pull request #67138 from touilleMan/gdextension-typed-enum-in-struct
...
Use enum type in GDExtension info structs for better readability
2022-10-13 15:25:11 +02:00
Gilles Roudière
55010a2d9f
Implement a way to dump the gdnative_interface.h file from the executable
2022-10-13 10:03:30 +02:00
Emmanuel Leblond
a9aedb0cf2
Fix extension_api.json Variant types incorrectly displayed as `Nil`
2022-10-10 13:54:33 +02:00
Emmanuel Leblond
aa76a905c7
Remove unused `GDNativeExtensionClassObjectInstance` type def from GDExtension
2022-10-10 01:15:07 +02:00
Emmanuel Leblond
1bd3597362
Use enum type in GDExtension info structs for better readability
2022-10-09 17:07:13 +02:00
bruvzg
ea1848ce0a
Use `constexpr` in the conditions with template parameters and `sizeof`s to suppress C4127 warnings.
2022-09-29 10:38:21 +03:00
bruvzg
8f5d56e04a
[GDExtension] Use function names with underscore for TextServer extension, add macros to generate wrappers for module functions.
2022-09-28 10:04:11 +03:00
Rémi Verschelde
006e345695
Merge pull request #65817 from bruvzg/typed_array
2022-09-23 10:24:46 +02:00
bruvzg
163257d51b
[GDExtension] Implement support for typed arrays.
2022-09-22 23:31:27 +03:00
Rémi Verschelde
d1a155e3cd
Fix various -Wmaybe-uninitialized warnings from GCC 12.2.1
...
Not sure why I didn't get those before, it may be due to upstream
changes (12.2.1 is a moving target, it's basically 12.3-dev), or simply
rebuilding Godot from scratch with different options.
2022-09-22 11:29:48 +02:00
Rémi Verschelde
e9ad0fd190
Merge pull request #66181 from touilleMan/extension_api_dump-correct-keyed
...
Fix is_keyed param in extension_api.json
2022-09-21 11:06:20 +02:00
Emmanuel Leblond
2ee951cef5
Fix hash mismatch error print in gdextension's gdnative_classdb_get_method_bind
2022-09-21 00:41:48 +02:00
Emmanuel Leblond
b7c3bbc627
Fix is_keyed param in extension_api.json
2022-09-21 00:14:53 +02:00
Silc Renew
9d47e079b7
Move some methods to Animation from Variant for refactoring
2022-09-15 04:52:43 +09:00
Aaron Franke
10a56981dc
Rename String `plus_file` to `path_join`
2022-08-29 19:38:13 -05:00
Rémi Verschelde
f583b835db
Merge pull request #64690 from touilleMan/projection-members-offsets-in-gdentension-api
2022-08-23 11:06:47 +02:00
Emmanuel Leblond
a6963320d6
Ignore fake properties in classes when generating extension_api.json
...
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
2022-08-22 22:17:03 +02:00
Emmanuel Leblond
dca6db76af
Add missing Projection's members offsets to gdextension_api.json
2022-08-21 12:49:28 +02:00
Yuri Sizov
980f5f32f4
Make `property_*_revert` methods multilevel and expose them for scripting
2022-08-18 00:03:53 +03:00
Hugo Locurcio
27a072c884
Print expected `os.arch` tuple for current platform in GDExtension error
...
This also adds `Engine.get_architecture_name()` to get the name of the
CPU architecture the Godot binary was built for.
2022-08-08 19:30:34 +02:00
Rémi Verschelde
90019676b0
Code quality: Fix header guards consistency
...
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 11:17:40 +02:00
reduz
455c06ecd4
Implement Vector4, Vector4i, Projection
...
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.
2022-07-23 14:00:01 +02:00
basta
3e664b4e29
Changed bool to GdNativeBool
2022-07-16 18:09:36 +02:00
bruvzg
cbe3a2dcb7
Use BitField hint for the TextServer enums. Add missing parts for BitField support to the GDextension API.
2022-07-15 08:49:50 +03:00
kobewi
2f777b9a1e
Remove unused hints
2022-07-12 00:44:13 +02:00
reduz
5ac42cf576
Implement a BitField hint
...
Allows to specify the binder that an enum must be treated as a bitfield.
2022-07-05 22:13:37 +02:00
Jan Haller
60ffadd133
GDExtension: reuse code with constructor PropertyInfo(const GDNativePropertyInfo&)
2022-06-29 19:30:01 +02:00
K. S. Ernest (iFire) Lee
9ddebc0c22
Add a const call mode to Object, Variant and Script.
...
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>
2022-06-27 13:33:06 -07:00
Pierre-Thomas Meisels
c28936ba6d
Add core types enums description to extension api json
2022-06-23 19:19:22 +02:00
Jan Haller
d2dba74bae
GDExtension: print error messages for different error paths during loading
2022-06-19 10:14:41 +02:00
bruvzg
860e24683f
Make enum/constant binds 64-bit.
2022-06-17 16:36:26 +03:00
Emmanuel Leblond
228ce1d2b6
Fix NativeExtension::open_library return value when the undelying lib fails to initialize
2022-06-12 00:18:08 +02:00
bruvzg
b3bbf3db47
[GDExtension] Expose Variant, NodePath and StringName hash functions.
2022-06-06 12:19:56 +03:00
reduz
746dddc067
Replace most uses of Map by HashMap
...
* 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!
2022-05-16 10:37:48 +02:00
Yuri Roubinsky
dbd7a31507
Implement exponential operator (**) to GDScript/Expressions
2022-05-11 16:30:37 +03:00
Rémi Verschelde
b9b78fdaee
Merge pull request #55876 from bradc6/feature/AllowForAbsoluteLibraryPaths
2022-05-10 13:38:41 +02:00