Commit graph

211 commits

Author SHA1 Message Date
Rémi Verschelde
bedcbdd420
Merge pull request #13130 from endragor/gdnative-android-export
Proper GDNative export on Android
2017-11-21 23:59:01 +01:00
Rémi Verschelde
613d374bc5
Merge pull request #12284 from bojidar-bg/allow-subproperty-set
Allow for getting/setting "dotted" properties of objects
2017-11-21 22:44:14 +01:00
Emmanuel Leblond
b075f13988
Fix&prettify gdnative_api_struct.gen.h GDNATIVE_API_INIT macro generation 2017-11-21 20:09:08 +01:00
Bojidar Marinov
0cf9597758
Allow for getting/setting indexed properties of objects using get/set_indexed
Performance is around the same as using pure set() through GDScript.
2017-11-21 20:58:21 +02:00
Ruslan Mustakov
ebf9b80a47 Proper GDNative export on Android 2017-11-21 20:40:31 +07:00
Rémi Verschelde
1c2782a7c7
Merge pull request #12590 from poke1024/bsearch
Add bsearch and bsearch_custom to Array
2017-11-21 13:14:08 +01:00
Bastiaan Olij
1955fecb2d Revert this change, we need to export symbols on the library side 2017-11-21 21:32:05 +11:00
poke1024
d6e54de502 Add bsearch and bsearch_custom to Array 2017-11-21 08:50:31 +01:00
Ruslan Mustakov
8f0f327f02 Allow configuring iOS export
- EditorExportPlugin's _export_begin accepts all the arguments related
   to the current export (is_debug, path, flags).

 - EditorExportPlugin API is extended with methods allowing to configure
   iOS export: add_ios_framework, add_ios_plist_content,
   add_ios_linker_flags, add_ios_bundle_file.

 - iOS export template now contains Godot as a static library so that
   it can be linked with third-party Frameworks and GDNative static
   libraries.

 - Adds method to DirAccess for recursive copying of a directory.

 - Fixes iOS export to work with Xcode 9 (released recently).
2017-11-21 01:16:49 +07:00
Thomas Herzog
30a82e5e00
Merge pull request #13094 from karroffel/gdnative-api-register-nativecall
[GDNative] add a way to register call types
2017-11-20 15:43:36 +01:00
Karroffel
5d666319e3 [GDNative] add a way to register call types 2017-11-20 14:49:22 +01:00
Karroffel
7388a1e115 [GDNative] removed static linking fields 2017-11-20 14:28:52 +01:00
Karroffel
33ffdba553 [GDNative] removed godot_string_c_str 2017-11-20 11:10:05 +01:00
Karroffel
0865365e21 [GDNative] loading error and version error procs 2017-11-20 11:09:55 +01:00
Ferenc Arn
d28763a4c1 Rename Rect3 to AABB.
Fixes #12973.
2017-11-17 11:01:41 -05:00
Karroffel
b13bfac9e3 [GDNative] fix wrapper code generation 2017-11-16 22:05:47 +01:00
Rémi Verschelde
11e07d18bd doc: Sync classref with current source 2017-11-15 21:29:34 +01:00
Rémi Verschelde
677e95d8d1 doc: Make all module docs self-contained 2017-11-15 21:29:33 +01:00
Rémi Verschelde
967bfb0c4a doc: Remove revision.module_config from version string
It is now "3.0-alpha" instead of "3.0.alpha.custom_build{,.mono}",
limits unnecessary diffs.
2017-11-15 20:41:16 +01:00
Juan Linietsky
9543801d51
Merge pull request #12949 from karroffel/gdnative-export
[GDNative] export plugin
2017-11-15 14:05:21 -03:00
Karroffel
f1099c7221 [GDNative] export plugin 2017-11-15 17:24:32 +01:00
Rémi Verschelde
61a693cf78
Merge pull request #12922 from eska014/engine-singletons
Singleton management changes
2017-11-14 20:44:55 +01:00
Thomas Herzog
bd2b1a62d9
Merge pull request #12586 from karroffel/gdnative-gdnlibrary-changes
[GDNative] use feature tags, added load once option
2017-11-14 15:34:07 +01:00
Leon Krause
9b7b46143d Move singleton management from ProjectSettings to Engine 2017-11-14 15:15:13 +01:00
Evrey
af6f096427 fix auto-generated GDN API header for C compilers (#12891)
* fix auto-generated GDN API header for C compilers
2017-11-13 23:35:03 +01:00
BastiaanOlij
9d3f8418ca Removed add/remove interface bindings and added get_interfaces 2017-11-13 22:08:43 +11:00
Karroffel
6d6208c63d [GDNative] renamed nativearvr to arvr in api.json 2017-11-10 13:08:19 +01:00
Karroffel
79285b084d [GDNative] rename nativearvr extension to arvr 2017-11-10 12:36:50 +01:00
Karroffel
7ae2de8997 [GDNative] better API struct versioning 2017-11-10 12:08:09 +01:00
Karroffel
983404e0ce [GDNative] refactored API struct into core and extensions 2017-11-09 18:39:28 +01:00
Karroffel
a2e09a5d41 [GDNative] even more API fixes 2017-11-07 18:17:11 +01:00
Thomas Herzog
3cbcf5c2dd
Merge pull request #12612 from karroffel/gdnative-poolarray-accessors
[GDNative] added Read and Write accessors to pool arrays
2017-11-04 14:22:25 +01:00
Bastiaan Olij
25c38c7542
Merge pull request #12557 from BastiaanOlij/arvr_add_rumble_support
Adding rumble support to ARVR controllers
2017-11-04 08:57:25 +11:00
Karroffel
af5c6be074 [GDNative] added Read and Write accessors to pool arrays 2017-11-03 18:17:58 +01:00
Karroffel
8b11e17f70 [GDNative] small API bug fixes 2017-11-03 16:05:21 +01:00
Karroffel
d82942e1c5 [GDNative] removed anchors 2017-11-03 15:17:50 +01:00
Karroffel
ffc2669298 [GDNative] use feature tags, added load once option 2017-11-03 15:17:44 +01:00
Bastiaan Olij
167b7b5533 Adding rumble support to ARVR controllers (if implemented on the ARVR interface) 2017-11-01 23:59:14 +11:00
Jerome67000
2609cc9ef4 Removes Script::get_node_type()
used before GDScript, with squirrel apparently
2017-10-25 20:11:30 +02:00
Ignacio Etcheverry
e218a13a64 Add ScriptLanguage::supports_builtin_mode and improve ScriptCreateDialog
- Make ScriptCreateDialog disable the built-in script checked button if the language does not support it.
- ScriptLanguage's get_template and make_template now receive the script path as class name if the the script language does not have named classes.
2017-10-24 15:48:58 +02:00
Rémi Verschelde
6361e24f29 Cleanup unnecessary debug prints 2017-10-21 20:41:07 +02:00
Rémi Verschelde
8652c1d5b1 classref: Sync with current source 2017-10-21 12:04:36 +02:00
Emmanuel Leblond
aedc44f6fe
[GDnative] remove useless (and illegal !) STL include 2017-10-20 22:05:25 +02:00
scorched
3ba5ee42c3 Fix compilation on Visual Studio 2013 (#10219). 2017-10-20 12:55:22 +02:00
Thomas Herzog
8c50bc369e Merge pull request #11953 from touilleMan/pluginscript
[GDnative] add pluginscript \o/
2017-10-17 13:08:41 +02:00
Emmanuel Leblond
e715be0f0a
[GDnative] add pluginscript \o/ 2017-10-17 10:50:13 +02:00
Emmanuel Leblond
9c1f6c5db6
[Nativescript] fix crash when loading a library with missing godot_nativescript_init 2017-10-16 08:16:37 +02:00
BastiaanOlij
c6ce73c680 Couple of small changes so our ARVRInterfaceGDNative gets constructed and registered automatically when a module loads 2017-10-15 12:56:36 +11:00
Karroffel
86de8060a4 remove error message for optional NativeScript symbols 2017-10-15 03:42:52 +02:00
Karroffel
e0019453a2 update ARVRInterfaceGDNative to use API struct 2017-10-14 18:18:02 +02:00
Karroffel
e568f80e6e [GDNative] removed native_raw_call 2017-10-14 15:50:55 +02:00
BastiaanOlij
cc37d43f86 Redoing the ARVR GDNative interface as module and tighter implementation 2017-10-14 09:10:18 +11:00
Karroffel
916ee427ff removed GDNativeClass doc from GDNative module 2017-10-13 15:02:54 +02:00
BastiaanOlij
41e70d4192 Move GDNative docs into gdnative folder 2017-10-13 21:54:57 +11:00
Thomas Herzog
ea37f44ec8 Merge pull request #11950 from sheepandshepherd/gdnative_property_index
Include property index in GDNative class API
2017-10-09 13:55:36 +02:00
Emmanuel Leblond
6363bcf209
[GDnative] fix crash at cleanup time when singleton_gdnatives is not empty 2017-10-09 00:31:25 +02:00
sheepandshepherd
6f3fffecb3 Include property index in GDNative class API
Needed by properties that share set/get functions. Fixes #10329.
2017-10-08 23:57:06 +02:00
Emmanuel Leblond
ce197990bc
[GDnatvie] improve wrapper code generation 2017-10-08 20:51:18 +02:00
Emmanuel Leblond
d17951f57e
[GDnative] Add string_name api 2017-10-08 16:47:10 +02:00
sheepandshepherd
39584f3312 Store GDNative API in array instead of dictionary 2017-10-07 20:17:12 +02:00
Juan Linietsky
3d87b70f7a Added the set/get_setting function in Editor/Project settings. Renamed has() to has_setting. Fixes #11844 2017-10-05 15:34:34 -03:00
Thomas Herzog
454dec2f2f Merge pull request #11806 from touilleMan/gdnative-version-field
[GDnative] add api version field to godot_gdnative_api_struct
2017-10-04 11:57:53 +02:00
Emmanuel Leblond
3e29cb806c
[GDnative] add future-proof next field to godot_gdnative_api_struct (a la Vulkan) 2017-10-04 03:11:41 +02:00
Karroffel
2a4e2b5378 [GDNative] added API struct wrapper generator
Previously functions of the GDNative API were accessed by letting
the loader at load-time resolve the symbols. This causes troubles on
Windows (...sigh...), so now the GDNative API isn't exported anymore.

This means, that a library that wants to call a GDNative function
needs to access it via a struct of pointers that's passed to it at
right after the library was loaded. To make the usage easier, those
function pointers in the struct can be wrapped in actual function in
the global scope. This commit adds a generator for that wrapper code.
2017-10-03 23:26:39 +02:00
Emmanuel Leblond
0d41be3790
[GDnative] add api version field to godot_gdnative_api_struct 2017-10-03 18:08:34 +02:00
Emmanuel Leblond
cdc29926af
[GDnative] replace gdnative_api_struct.h by a json-based autogenerated system 2017-10-03 09:48:52 +02:00
Emmanuel Leblond
c55b8217ab
[GDnative] Add active_library_path to init options struct 2017-10-02 13:45:47 +02:00
Emmanuel Leblond
c11c951871
[GDnative] Add binding to GDNativeLibrary::get_active_library_path 2017-10-02 13:25:53 +02:00
Ruslan Mustakov
f5b3b24c22 Enhance iOS export
- The export process now builds complete .ipa on macOS, instead of just
   creating XCode project.

 - The project includes Capabilities games usually require: Game Center,
   Push Notifications, In-App Purchase.

 - Icons and launch screens can be specified in export preset.
2017-09-26 00:18:08 +07:00
Ross Hadden
1a97d6455d Fixed a bunch of typos, including an error code. 2017-09-21 23:58:29 -04:00
Hein-Pieter van Braam
833c3917b2 Allow booleanization of all types
We now allow booleanization of all types. This means that empty versions
of all types now evaluate to false. So a Vector2(0,0), Dictionary(),
etc.

This allows you to write GDScript like:
if not Dictionary():
  print("Empty dict")

Booleanization can now also no longer fail. There is no more valid flag,
this changes Variant and GDNative API.
2017-09-19 18:55:31 +02:00
Konstantin Zaitsev
28dc30cd59 Change structure order for godot nim compatibility 2017-09-19 11:35:51 +07:00
Konstantin Zaitsev
c386a02654 Fix MSVC compilation errors 2017-09-19 10:33:07 +07:00
Thomas Herzog
259778ce8c Merge pull request #11296 from touilleMan/gdnative-api-struct
[GDnative] pass api as struct of function pointers to loaded gdnative modules
2017-09-17 20:59:46 +02:00
Emmanuel Leblond
8d57a3f3d5
[GDnative] Use X macro to define godot_gdnative_api_struct and it instantiation 2017-09-17 18:33:08 +02:00
Emmanuel Leblond
e4c9f8895e
[GDnative] create godot_gdnative_api_struct and pass it to godot_gdnative_init_options 2017-09-17 16:13:14 +02:00
Rémi Verschelde
2d4f6ef0bf Apply clang-format again to recent changes
Also add missing copyright headers.

[ci skip]
2017-09-16 19:48:45 +02:00
Marcelo Fernandez
12a7f15bdc Fix compile error on gd_native_library_editor.cpp with tools=no 2017-09-15 13:29:29 -03:00
Thomas Herzog
5636ac526e Merge pull request #11237 from endragor/gdnative-variant-ref
Construct Variants from Reference properly in GDNative
2017-09-14 21:21:50 +02:00
Juan Linietsky
35ed1eef2a Added a menu to enable/disabled GDNative singletons in project settings 2017-09-14 15:02:51 -03:00
Ruslan Mustakov
f08bc0df7c Construct Variants from Reference properly in GDNative
Previously godot_variant_new_object constructed Variant without
accounting for the fact that the Object can be a Reference, so refcount
was not increased and References were destructed prematurely.

Also, Reference::init_ref did not propagate refcount increment to the
script instance, which led to desync of refcount info on the script
side and Godot side.
2017-09-14 19:40:36 +07:00
Rémi Verschelde
4f51211dfb Merge pull request #11028 from mrawlingst/color-RGBA32
Change Color.to_32() to Color.to_rgba32() and lowercase other functions
2017-09-12 13:44:43 +02:00
bncastle
fc83821316 Fixed attempt to delete NULL pointer error
Fixed: Error cause by attemptng to delete a NULL pointer.
unregister_gdnative_types() now checks discoverer to see if it is NULL
before deleting. After selecting a godot project to edit (in Win10), the
discoverer_callback() wasn't called thus discoverer was NULL.
2017-09-10 17:39:42 -04:00
mrawlingst
6aa5bc2347 Change Color.to_32() to to_rgba32() and format as RGBA 2017-09-07 16:19:44 -04:00
Ruslan Mustakov
269203a022 Provide NativeScript properties in definition order 2017-09-05 12:45:23 +07:00
Karroffel
54a9c1ee43 [GDNative] added singleton GDNativeLibraries
A GDNativeLibrary now has a field "gdnative_singleton" which can be
used to let the `godot_gdnative_singleton` procedure be executed on
Godot's startup. In future this can be used to register new
scripting languages or resource importer types.
2017-09-03 16:56:00 +02:00
Karroffel
7878329e6f merged gdnative and nativescript module 2017-09-03 15:28:43 +02:00
Hein-Pieter van Braam
f9467ec1ea Fix signed and unsigned comparisons
The first in my quest to make Godot 3.x compile with -Werror on GCC7
2017-09-01 08:13:12 +02:00
Emmanuel Leblond
6151adfe8c
Correct GDnative's godot_string_find_last method name 2017-08-31 23:24:26 +02:00
Rémi Verschelde
6f762ad709 Merge pull request #10422 from endragor/gdnative-android
Make GDNative work on Android
2017-08-31 13:51:10 +02:00
Ruslan Mustakov
5ccdeccb6e 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.
2017-08-30 18:14:19 +07:00
Hein-Pieter van Braam
ec63438231 Remove 10778 related methods from GDNative
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.
2017-08-30 12:54:59 +02:00
Ruslan Mustakov
415f7da025 Fix GDNative API generator after changes to MethodBind 2017-08-30 10:45:10 +07:00
Rémi Verschelde
bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Hein-Pieter van Braam
cacced7e50 Convert Object::cast_to() to the static version
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/
2017-08-24 23:08:24 +02:00
Juan Linietsky
36e0a72c77 -Code completion for enumerations
-Disabled GDNative and GDNativeScript so build compiles again
2017-08-24 00:06:56 -03:00
Wilson E. Alvarez
738d2ab969 Removed unnecessary assignments 2017-08-21 15:15:55 -04:00
Juan Linietsky
541fdffc0a Merge pull request #10319 from neikeq/pr-engine-editor-hint
Adds Engine::is_editor_hint() method
2017-08-20 12:55:46 -03:00
Emmanuel Leblond
00d552b1cd
[GDnative] Correct godot_string_chars_to_utf8_with_len function name 2017-08-19 17:08:33 +02:00
Ignacio Etcheverry
90b8a5b71e Removes editor_hint from SceneTree 2017-08-19 01:29:45 +02:00