summaryrefslogtreecommitdiff
path: root/core/extension
AgeCommit message (Collapse)Author
2023-01-08Use BitField<> in core type masksJuan Linietsky
* 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.
2023-01-05One Copyright Update to rule them allRémi Verschelde
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".
2022-12-19Merge pull request #65990 from ↵Rémi Verschelde
touilleMan/gdextension-expose-builtins-members-real-types Expose in builtins' members internal type & size (on top of offset) in extension_api.json
2022-12-15Expose in builtins' members internal type & size (on top of offset) in ↵Emmanuel Leblond
extension_api.json
2022-12-14Extension header: amend const correctness of `p_args` parametersJan Haller
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.
2022-12-13Improve logic around using Ref<T> with GDExtension virtual functionsBastiaan Olij
2022-12-12Rename all gdnative occurences to gdextensionGilles Roudière
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
2022-12-06Merge pull request #67906 from groud/simpler_gdextension_configRémi Verschelde
Remove unnecessary checks when exporting gdextension binaries and allow using a prefix to auto-detect files
2022-12-02Fix const qualifier for parameters in GDExtension api functionsEmmanuel Leblond
2022-12-01Allow specifying a prefix to automatically detect library files for ↵Gilles Roudière
gdextension exports
2022-12-01Merge pull request #64427 from ↵Rémi Verschelde
touilleMan/gdextension-skip-undefined-field-in-properties [GDExtension] Skip unset getter/setter/index fields in class property
2022-12-01Merge pull request #64360 from ↵Rémi Verschelde
touilleMan/gdextension-correct-rect2-members-offsets-declaration [GDExtension] Correct Rect2 members offsets declaration in extension_api.json generator
2022-11-16Extension header: fix typos, documentation and member orderJan Haller
2022-11-12Skip unset getter/setter/index fields in class property when generating ↵Emmanuel Leblond
extension_api.json
2022-11-12Correct Rect2 members offsets declaration in extension_api.json generatorEmmanuel Leblond
2022-11-12Revert removal of ↵Emmanuel Leblond
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-08Use StringName in the whole GDExtension API instead of const char *Emmanuel Leblond
2022-11-08Uses `StringName` in GDExtension perf critical instance creation & ↵Emmanuel Leblond
method/properties setter/getter
2022-11-07GDExtension: Ensure newline at EOFRémi Verschelde
2022-10-31Merge pull request #67309 from groud/implement_gdnative_interface_h_dumpRémi Verschelde
Implement a way to dump the gdnative_interface.h file from the executable
2022-10-16GDExtension: add support for abstract and virtual classesRicardo Buring
2022-10-13Merge pull request #67138 from touilleMan/gdextension-typed-enum-in-structRémi Verschelde
Use enum type in GDExtension info structs for better readability
2022-10-13Implement a way to dump the gdnative_interface.h file from the executableGilles Roudière
2022-10-10Fix extension_api.json Variant types incorrectly displayed as `Nil`Emmanuel Leblond
2022-10-10Remove unused `GDNativeExtensionClassObjectInstance` type def from GDExtensionEmmanuel Leblond
2022-10-09Use enum type in GDExtension info structs for better readabilityEmmanuel Leblond
2022-09-29Use `constexpr` in the conditions with template parameters and `sizeof`s to ↵bruvzg
suppress C4127 warnings.
2022-09-28[GDExtension] Use function names with underscore for TextServer extension, ↵bruvzg
add macros to generate wrappers for module functions.
2022-09-23Merge pull request #65817 from bruvzg/typed_arrayRémi Verschelde
2022-09-22[GDExtension] Implement support for typed arrays.bruvzg
2022-09-22Fix various -Wmaybe-uninitialized warnings from GCC 12.2.1Rémi Verschelde
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-21Merge pull request #66181 from touilleMan/extension_api_dump-correct-keyedRémi Verschelde
Fix is_keyed param in extension_api.json
2022-09-21Fix hash mismatch error print in gdextension's gdnative_classdb_get_method_bindEmmanuel Leblond
2022-09-21Fix is_keyed param in extension_api.jsonEmmanuel Leblond
2022-09-15Move some methods to Animation from Variant for refactoringSilc Renew
2022-08-29Rename String `plus_file` to `path_join`Aaron Franke
2022-08-23Merge pull request #64690 from ↵Rémi Verschelde
touilleMan/projection-members-offsets-in-gdentension-api
2022-08-22Ignore fake properties in classes when generating extension_api.jsonEmmanuel Leblond
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-21Add missing Projection's members offsets to gdextension_api.jsonEmmanuel Leblond
2022-08-18Make `property_*_revert` methods multilevel and expose them for scriptingYuri Sizov
2022-08-08Print expected `os.arch` tuple for current platform in GDExtension errorHugo Locurcio
This also adds `Engine.get_architecture_name()` to get the name of the CPU architecture the Godot binary was built for.
2022-07-25Code quality: Fix header guards consistencyRémi Verschelde
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
2022-07-23Implement Vector4, Vector4i, Projectionreduz
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-16Changed bool to GdNativeBoolbasta
2022-07-15Use BitField hint for the TextServer enums. Add missing parts for BitField ↵bruvzg
support to the GDextension API.
2022-07-12Remove unused hintskobewi
2022-07-05Implement a BitField hintreduz
Allows to specify the binder that an enum must be treated as a bitfield.
2022-06-29GDExtension: reuse code with constructor PropertyInfo(const ↵Jan Haller
GDNativePropertyInfo&)
2022-06-27Add a const call mode to Object, Variant and Script.K. S. Ernest (iFire) Lee
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-23Add core types enums description to extension api jsonPierre-Thomas Meisels