Age | Commit message (Collapse) | Author |
|
* All core types masks are now correctly marked as bitfields.
* The enum hacks in MouseButtonMask and many other types are gone. This ensures that binders to other languages non C++ can actually implement type safe bitmasks.
* Most bitmask operations replaced by functions in BitField<>
* Key is still a problem because its enum and mask at the same time. While it kind of works in C++, this most likely can't be implemented safely in other languages and will have to be changed at some point. Mostly left as-is.
* Documentation and API dump updated to reflect bitfields in core types.
|
|
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.
It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).
We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).
Also fixed "cf." Frenchism - it's meant as "refer to / see".
|
|
touilleMan/gdextension-expose-builtins-members-real-types
Expose in builtins' members internal type & size (on top of offset) in extension_api.json
|
|
extension_api.json
|
|
A while ago, argument arrays were passed as const GDNativeTypePtr* (void* const*)
This was changed to GDNativeConstTypePtr* (void const**), adding const on the value but removing it on the pointer level.
This commit changes argument types to const GDExtensionConstTypePtr* (void const* const*).
Besides object pointers, the same change is applied to variant pointers.
|
|
|
|
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
|
|
Remove unnecessary checks when exporting gdextension binaries and allow using a prefix to auto-detect files
|
|
|
|
gdextension exports
|
|
touilleMan/gdextension-skip-undefined-field-in-properties
[GDExtension] Skip unset getter/setter/index fields in class property
|
|
touilleMan/gdextension-correct-rect2-members-offsets-declaration
[GDExtension] Correct Rect2 members offsets declaration in extension_api.json generator
|
|
|
|
extension_api.json
|
|
|
|
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 :/
|
|
|
|
method/properties setter/getter
|
|
|
|
Implement a way to dump the gdnative_interface.h file from the executable
|
|
|
|
Use enum type in GDExtension info structs for better readability
|
|
|
|
|
|
|
|
|
|
suppress C4127 warnings.
|
|
add macros to generate wrappers for module functions.
|
|
|
|
|
|
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.
|
|
Fix is_keyed param in extension_api.json
|
|
|
|
|
|
|
|
|
|
touilleMan/projection-members-offsets-in-gdentension-api
|
|
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
|
|
|
|
|
|
This also adds `Engine.get_architecture_name()` to get the name of the
CPU architecture the Godot binary was built for.
|
|
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
|
|
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.
|
|
|
|
support to the GDextension API.
|
|
|
|
Allows to specify the binder that an enum must be treated as a bitfield.
|
|
GDNativePropertyInfo&)
|
|
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>
|
|
|