Age | Commit message (Collapse) | Author |
|
|
|
Make GDNative work on Android
|
|
The changes include work done to ensure that GDNative apps and Nim
integration specifically can run on Android. The changes have been
tested on our WIP game, which uses godot-nim and depends on several
third-party .so libs, and Platformer demo to ensure nothing got broken.
- .so libraries are exported to lib/ folder in .apk, instead of assets/,
because that's where Android expects them to be and it resolves the
library name into "lib/<ABI>/<name>", where <ABI> is the ABI matching
the current device. So we establish the convention that Android .so
files in the project must be located in the folder corresponding to
the ABI they were compiled for.
- Godot callbacks (event handlers) are now called from the same thread
from which Main::iteration is called. It is also what Godot now
considers to be the main thread, because Main::setup is also called
from there. This makes threading on Android more consistent with
other platforms, making the code that depends on Thread::get_main_id
more portable (GDNative has such code).
- Sizes of GDNative API types have been fixed to work on 32-bit
platforms.
|
|
After #10778 master didn't build any longer with GDNative. This removes
the methods removed in that PR from the GDNative bindings for Basis
also.
|
|
|
|
|
|
Currently we rely on some undefined behavior when Object->cast_to() gets
called with a Null pointer. This used to work fine with GCC < 6 but
newer versions of GCC remove all codepaths in which the this pointer is
Null. However, the non-static cast_to() was supposed to be null safe.
This patch makes cast_to() Null safe and removes the now redundant Null
checks where they existed.
It is explained in this article: https://www.viva64.com/en/b/0226/
|
|
-Disabled GDNative and GDNativeScript so build compiles again
|
|
|
|
Adds Engine::is_editor_hint() method
|
|
|
|
|
|
Updated function argument names
|
|
So as to not revive #10071, as suggested by @akien-mga.
|
|
|
|
|
|
|
|
This bug got discovered thanks to clang!
|
|
|
|
|
|
fixes #10071. The problem is that the json.h file includes the
local variant.h instead of the "absolute" core/variant.h
|
|
The _init call was buggy anyway and in the end shouldn't be a
thing that's called via ClassDB, it should be something that's
language specific, so we leave this out for the bindings.
In the commit 66a7763 the SCsub file for GDNative was changed to
use a cloned environment, that bricked -rdynamic which needs to be
passed down to the linker, which didn't happen with the new env.
|
|
The old include paths caused some problems on some compilers, for
example including "string.h" was ambiguous.
|
|
|
|
When looking up a symbol from a library, previously an error was
shown when the symbol did not exist. That caused confusion when the
lookup was completely optional.
This adds a new parameter to that method so that those errors can
be handled manually if needed.
|
|
Add a way to retrieve stack bottom of the main thread
|
|
I'm working on Nim bindings and Nim GC needs to know the stack
boundaries to check whether certain pointers are located on the stack
or in the heap. This commit adds godot_get_stack_bottom procedure
to gdnative module which returns pointer to the stack bottom of the
main thread. Later on this may be improved to return stack bottom of
the current thread.
|
|
|
|
This adds GDNative as a separate class type.
It can be used to interface with native libraries by
using "native calls", which can be registered by modules
(and in future other GDNative libraries?).
It also reworks the currently called "GDNativeScript" into a
"NativeScript" that just makes use of the new GDNative instead
of it being the component that implements that functionality.
|
|
|
|
-Added system for feature overrides, it's pretty cool :)
|
|
[gdnative] `Object::_get` return type and dynamic property
|
|
|
|
|
|
|
|
|
|
|
|
Better user experience with external text editors.
|
|
Implements open_in_external_editor for subclasses of ScriptLanguage.
Add option 'Debug with external editor' to debug menu to control the behavoir of script opened by editor.
|
|
-Fixded BackBuffercopy object
|
|
Up until now there only was GDAPI which was used
for the procedures Godot exposes.
|
|
Seems like the extension is .dylib and not .dynlib.
This should make it easier to select files from the editor.
|
|
|
|
|
|
|
|
|
|
|
|
Those errors were introduced with #8821 (6fd217d). These functions need to return reference types, otherwise setting values on those containers does not work.
|
|
|
|
Also cleanup comments on variant types.
|