summaryrefslogtreecommitdiff
path: root/modules/gdnative
AgeCommit message (Collapse)Author
2018-07-27Running builder (content generator) functions in subprocesses on WindowsViktor Ferenczi
- Refactored all builder (make_*) functions into separate Python modules along to the build tree - Introduced utility function to wrap all invocations on Windows, but does not change it elsewhere - Introduced stub to use the builders module as a stand alone script and invoke a selected function There is a problem with file handles related to writing generated content (*.gen.h and *.gen.cpp) on Windows, which randomly causes a SHARING VIOLATION error to the compiler resulting in flaky builds. Running all such content generators in a new subprocess instead of directly inside the build script works around the issue. Yes, I tried the multiprocessing module. It did not work due to conflict with SCons on cPickle. Suggested workaround did not fully work either. Using the run_in_subprocess wrapper on osx and x11 platforms as well for consistency. In case of running a cross-compilation on Windows they would still be used, but likely it will not happen in practice. What counts is that the build itself is running on which platform, not the target platform. Some generated files are written directly in an SConstruct or SCsub file, before the parallel build starts. They don't need to be written in a subprocess, apparently, so I left them as is.
2018-07-27Fixed nativescript getter and setter logicBastiaan Olij
2018-07-26doc: Sync classref with current sourceRémi Verschelde
Fix various missing arguments in bindings.
2018-07-26Reduce unnecessary COW on Vector by make writing explicitHein-Pieter van Braam
This commit makes operator[] on Vector const and adds a write proxy to it. From now on writes to Vectors need to happen through the .write proxy. So for instance: Vector<int> vec; vec.push_back(10); std::cout << vec[0] << std::endl; vec.write[0] = 20; Failing to use the .write proxy will cause a compilation error. In addition COWable datatypes can now embed a CowData pointer to their data. This means that String, CharString, and VMap no longer use or derive from Vector. _ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug builds. This is a lot faster for Vector in the editor and while running tests. The reason why this difference used to exist is because force-inlined methods used to give a bad debugging experience. After extensive testing with modern compilers this is no longer the case.
2018-07-25Merge pull request #20370 from marcelofg55/gdnative_crashThomas Herzog
Fix possible crash at NativeScript::get_base_script
2018-07-25Fix possible crash at NativeScript::get_base_scriptMarcelo Fernandez
2018-07-24Removed unnecessary assignmentsWilson E. Alvarez
2018-07-20Add editor highlight for type-safe linesGeorge Marques
The line number is hightlighted to indicate that the line contains only type-safe code.
2018-07-02Add a new notification to detect crashes on native scriptsMarcelo Fernandez
2018-06-29Merge pull request #19757 from Faless/gdnet_prThomas Herzog
Network bindings for GDNative
2018-06-27Add [Packet/Stream/Multiplayer]PeerGDNativeFabio Alessandrelli
They provide an interface to implement PacketPeer, StreamPeer, and NetworkedMultiplayerPeer via GDNative.
2018-06-21add NoCache wrapper to CommandRhody Lugo
2018-06-19Add access for GDNative modules to some platform dependent internals on AndroidBastiaan Olij
2018-06-15[Pluginscript] Fix not working exports in editorEmmanuel Leblond
2018-05-30SCons: Pass env to modules can_build methodRémi Verschelde
This allows to disable modules based on the environment, in particular `env[tools]` which tells us if we are building the editor or not.
2018-05-30Merge pull request #19255 from Faless/rpc_sync_mmoreRémi Verschelde
RPCMode refactor, more sync modes (2)
2018-05-29New sync keywords in GDScript, NativeScript, MonoFabio Alessandrelli
2018-05-29Refactor RPCMode enum and checksFabio Alessandrelli
2018-05-29Revert "RPCMode refactor, more sync modes"Max Hilbrunner
2018-05-27[WIP] Adding version info to GDNative ARVR interfacesBastiaan Olij
2018-05-26New sync keywords in GDScript, NativeScript, MonoFabio Alessandrelli
2018-05-26Refactor RPCMode enum and checksFabio Alessandrelli
2018-05-10changed GDNative API json formatkarroffel
2018-05-08Fix Variant leak in call_nativePedro J. Estébanez
2018-04-30Fix lto builds on clang compilersHein-Pieter van Braam
The --no-lto option only works on GCC compilers. This breaks LTO builds on MacOS and iPhone when building the gdnative wrappers. -fno-lto works on both brands of compilers.
2018-04-19Merge pull request #18119 from sheepandshepherd/nativescript_property_listRémi Verschelde
Fix NativeScript property list order
2018-04-12Revert "Unify http- and percent- encode/decode"Pedro J. Estébanez
This reverts commit b76ee30917c63211ac9e94a21bebbddf518d169f.
2018-04-11Fix NativeScript property listsheepandshepherd
2018-04-10doc: Sync classref with current sourceRémi Verschelde
2018-04-07Merge pull request #17583 from RandomShaper/enhance-uri-utilsJuan Linietsky
Enhance uri utils
2018-04-07Correct profiling_frame naming in pluginscriptEmmanuel Leblond
2018-04-06Fix Pluginscript add_global_constant mandatory value checkEmmanuel Leblond
2018-04-06[NativeScript] replace error macros by simple returnskarroffel
2018-04-05Merge pull request #17980 from karroffel/nativescript-1.1-global-type-tagsThomas Herzog
[NativeScript] added global type tag system
2018-04-05[NativeScript] added global type tag systemkarroffel
2018-04-04[GDNative] enable saving GDNativeLibrary as sub resourcekarroffel
2018-04-04[GDNative] easier GDNativeLib handlingkarroffel
2018-03-31[GDNative] fixed issue with library unloading orderkarroffel
2018-03-31[GDNative] added GDCALLINGCONV to instance binding functionskarroffel
2018-03-27Unify http- and percent- encode/decodePedro J. Estébanez
There was a percent-prefixed version, which was exposed, and a http-prefixed version which was not (only to GDNative). This commit keeps the percent-prefixed versions, but with the http-prefixed implementations.
2018-03-02NativeScript: Fix initialization in wrong scopeRémi Verschelde
Regression from d702d7b335c0c9305e75131770c0ea739b70d813 which broke javascript build.
2018-02-28Fix various valgrind reported uninitialized variable usesHein-Pieter van Braam
2018-02-27doc: Remove status from hardcoded version stringRémi Verschelde
It has no practical use case and just generates noise for each alpha, beta, etc.
2018-02-21Fix typos with codespellluz.paz
Found via `codespell -q 3 --skip="./thirdparty,./editor/translations" -I ../godot-word-whitelist.txt` Whitelist consists of: ``` ang doubleclick lod nd que te unselect ```
2018-02-19doc: Update version string in headerRémi Verschelde
2018-02-11gdnative_api.json: Change argument name to r_desttilpner
This reflects its usage as an output argument, consistent with the other godot_variant_new functions
2018-02-10Merge pull request #16539 from eska014/gdnative-macwarnThomas Herzog
Fix GDNATIVE_API_INIT() warning about sign mismatch
2018-02-10Fix GDNATIVE_API_INIT() warning about sign mismatchLeon Krause
2018-02-09add initial NativeScript 1.1 extensionkarroffel
This commit adds new functionality to NativeScript, namely: - ability to set and get documentation for classes, methods, signals and properties - ability to set names and type information to method arguments - ability to set and get type tags for nativescripts - ability to register instance binding data management functions - ability to use instance binding data
2018-02-09generate proper API structs for GDNative extension extensionskarroffel
The GDNative C API gets passed to libraries in a struct of function pointers. To provide stable binary compatibility, each extension not part of the core API is separated into its own sub-struct. These structs aren't meant to be changed in order to keep binary compatibility. In case of an API extension, the structs include a `next` pointer which can point to a new struct with additional function pointers. Godot's build system generates the API structs automatically at build time, but so far there has no support for the mentioned `next` pointers. This commit changes the API struct generation in such a way that code that used previous headers will compile without problem with the new headers. The new extension-extensions (weird name, but that's what it is) get generated recursively and include the version in the struct-name.