summaryrefslogtreecommitdiff
path: root/modules/gdnative
AgeCommit message (Collapse)Author
2021-05-25Rename File::get_len() get_length()Marcel Admiraal
2021-05-24Add GDNative Framework loading and export support.bruvzg
2021-05-17Make all file access 64-bit (uint64_t)Pedro J. Estébanez
This changes the types of a big number of variables. General rules: - Using `uint64_t` in general. We also considered `int64_t` but eventually settled on keeping it unsigned, which is also closer to what one would expect with `size_t`/`off_t`. - We only keep `int64_t` for `seek_end` (takes a negative offset from the end) and for the `Variant` bindings, since `Variant::INT` is `int64_t`. This means we only need to guard against passing negative values in `core_bind.cpp`. - Using `uint32_t` integers for concepts not needing such a huge range, like pages, blocks, etc. In addition: - Improve usage of integer types in some related places; namely, `DirAccess`, core binds. Note: - On Windows, `_ftelli64` reports invalid values when using 32-bit MinGW with version < 8.0. This was an upstream bug fixed in 8.0. It breaks support for big files on 32-bit Windows builds made with that toolchain. We might add a workaround. Fixes #44363. Fixes godotengine/godot-proposals#400. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-05-11GDNative: Fix size mismatch on 32-bit platforms for Signal and CallableRémi Verschelde
Fixes #48645.
2021-05-05Highlight control flow keywords with a different colorHugo Locurcio
This makes them easier to distinguish from other keywords.
2021-04-29Replace remaining uses of `NULL` with `nullptr`Rémi Verschelde
Follow-up to #38736 (these uses were likely added after this PR was merged).
2021-04-27Core: Drop custom `copymem`/`zeromem` definesRémi Verschelde
We've been using standard C library functions `memcpy`/`memset` for these since 2016 with 67f65f66391327b2967a20a89c3627e1dd6e84eb. There was still the possibility for third-party platform ports to override the definitions with a custom header, but this doesn't seem useful anymore.
2021-04-22Fix crash on GDNative API json generator exit.bruvzg
2021-04-06Only cleanup meta data if GDNative library is reloadable and we're about to ↵Bastiaan Olij
unload it
2021-04-04Fixes #47607 (forgotten statement in GDNative cleanup)Jan Haller
Co-authored-by: geekrelief <geekrelief@gmail.com>
2021-04-03Merge pull request #47452 from BastiaanOlij/xr_positional_tracker_refRémi Verschelde
Change XRPositionalTracker to a reference (master)
2021-04-01Merge pull request #46991 from madmiraal/rename-invert-reverseRémi Verschelde
Rename Array.invert() to Array.reverse()
2021-03-31Fix gdnative config file set as nullKyle
Fixes # Setting a GDNativeLibrary config file as null or any other object but a ConfigFile will now cause an error.
2021-03-31[Complex Text Layouts] Provide access to glyph contour points.bruvzg
2021-03-29Merge pull request #46844 from geekrelief/gdnative_unregister_script_fixRémi Verschelde
fixes #46839, ensure library_classes is cleared and free funcs are ca…
2021-03-29Change XRPositionalTracker to a reference and better expose it to GDNativeBastiaan Olij
2021-03-27Add support for _to_string virtual function overwrite in PluginscriptEmmanuel Leblond
2021-03-23Rename some more global enums (Key, Joy, MIDI)Aaron Franke
2021-03-21Rename Array.invert() to Array.reverse()Marcel Admiraal
Does the same internally for List and Vector<>, which includes all PackedArray types.
2021-03-17Added static method information the generated builtin API JSONGeorge Marques
2021-03-17Further changes in GDNative APIGeorge Marques
- Added new_copy to all types, since trivial copy won't work for all types. - Added functions to convert from String to char array types, which is not provided by the methods bound in Variant. - Added operator index to String. - Added missing cstring version of some Variant functions. They existed in the header but didn't have the implementation and were missing from the gdnative_api.json file. - Added support for static calls on Variant types.
2021-03-12Fixes small typos and grammar correctionAnshul7sp1
2021-03-12Merge pull request #44671 from o01eg/fix-gcc-visibilityRémi Verschelde
GDNative: Fix symbols visibility for GCC
2021-03-10Implement Navigation layersGilles Roudière
2021-03-09fixes #46839, ensure library_classes is cleared and free funcs are calledgeekrelief
Co-authored-by: toasteater <48371905+toasteater@users.noreply.github.com> Co-authored-by: Jan Haller <bromeon@gmail.com>
2021-02-24Merge pull request #46045 from bruvzg/text_server_bmp_createRémi Verschelde
[TextServer] Restores bitmap font dynamic construction functions.
2021-02-18Merge pull request #45617 from RandomShaper/modernize_atomicsRémi Verschelde
Modernize atomics (and fix `volatile`)
2021-02-18Modernize atomicsPedro J. Estébanez
- Based on C++11's `atomic` - Reworked `SafeRefCount` (based on the rewrite by @hpvb) - Replaced free atomic functions by the new `SafeNumeric<T>` - Replaced wrong cases of `volatile bool` by the new `SafeFlag` - Platform-specific implementations no longer needed Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-18Reorganize Project Settingsreduz
-Advanced Settings toggle also hides advanced properties when disabled -Simplified Advanced Bar (errors were just plain redundant) -Reorganized rendering quality settings. -Reorganized miscelaneous settings for clean up.
2021-02-15[Text Server] Restores bitmap font dynamic construction functions.bruvzg
2021-02-15[TextServer] Restore character and space extra spacing support.bruvzg
2021-02-14Only unload the library when no NativeScript objects exist if the reloadable ↵Bastiaan Olij
flag is true. If it is false it is likely the library does other things and can't be unloaded
2021-02-11Improve resource load cachereduz
-Added a new method in Resource: reset_state , used for reloading the same resource from disk -Added a new cache mode "replace" in ResourceLoader, which reuses existing loaded sub-resources but resets their data from disk (or replaces them if they chaged type) -Because the correct sub-resource paths are always loaded now, this fixes bugs with subresource folding or subresource ordering when saving.
2021-02-11Fix broken gdnative variant testHenry Conklin
2021-02-11Merge pull request #45847 from vnen/gdnative-bindingsRémi Verschelde
Improve GDNative API and JSON generation further
2021-02-10Removed _change_notifyreduz
-For inspector refresh, the inspector now detects if a property change by polling a few times per second and then does update the control if so. This process is very cheap. -For property list refresh, a new signal (property_list_changed) was added to Object. _change_notify() is replaced by notify_property_list_changed() -Changed all objects using the old method to the signal, or just deleted the calls to _change_notify(<property>) since they are unnecesary now.
2021-02-09Improve GDNative api.json generatorGeorge Marques
- Add indexed type to the builtin types output, which is useful for bindings implementing array-like access. - Use getter type instead of hint for property types, as the hint can be unreliable and include multiple comma-separated possible types.
2021-02-09Further changes to GDNative APIGeorge Marques
- Moved Variant struct definition to its own file so it can be used without include cycles (like on Dictionary). - Add `index` operator function so bindings like C++ can implement the operator[] overload (which needs a reference to the actual value). - Added missing new/destroy functions to Vector3i array. - Added print error/warning functions as helpers so bindings can print messages in the same manner as Godot itself does.
2021-02-08Initialize class/struct variables with default values in modules/Rafał Mikrut
2021-02-02C conformance: Include stdbool.h to define `bool`Miguel de Icaza
`bool` is otherwise not defined in C.
2021-01-31Merge pull request #45315 from RandomShaper/modernize_threadRémi Verschelde
Modernize Thread
2021-01-29Add GDNative JSON generator for the builtin APIGeorge Marques
Which can be used by language bindings to generate code statically. This is generated as a different file from the class API because it has different requirements (the builtin types have constructors and don't have signals), so bindings can better make use of each JSON file without extra parsing. This also cleans up a bit the old API generator, mainly initializing structs and renaming "instanciable" to the more correct "instantiable". The argument description in help text was updated to better reflect how it should be used. The <path> argument is mandatory.
2021-01-29Modernize ThreadPedro J. Estébanez
- Based on C++11's `thread` and `thread_local` - No more need to allocate-deallocate or check for null - No pointer anymore, just a member variable - Platform-specific implementations no longer needed (except for the few cases of non-portable functions) - Simpler for `NO_THREADS` - Thread ids are now the same across platforms (main is 1; others follow)
2021-01-26Merge pull request #45373 from aaronfranke/gdnative-sizeofGeorge Marques
Define GDNative sizes using sizeof(godot_real) and sizeof(int32_t)
2021-01-26Merge pull request #44617 from geekrelief/gdnative_unloadRémi Verschelde
free library when no nativescripts reference it
2021-01-25Define GDNative sizes using sizeof(godot_real_t) and sizeof(int32_t)Aaron Franke
2021-01-25GDNative: Remove print functionsGeorge Marques
Those are now utilities so the function pointer can be fetched when needed.
2021-01-25GDNative: New core APIGeorge Marques
This API now uses the discovery functions present in Variant instead of wrapping every built-in function. Users now need to query for function pointers and use those.
2021-01-05Changed type to make it work on x32 architecture.zero13cool
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆