Commit Graph

1510 Commits (c20a84e483ec61c77e5903cb4a139f6875e28a3b)

Author SHA1 Message Date
Daniel Rakos 01606fa212 Optimizations to the generated bindings
This change gets rid of the call-time method binding query, instead it queries
all method bindings up-front at initialization time so that no extra cost is
added at function call time.

In addition, also converted the "icall" code to a header-only library so one
level of unnecessary call-stack is eliminated.

Also changed binding generator to use real_t instead of double everywhere
(except at the GDNative interface where unfortunately using doubles is hard-coded
on the engine side).

All this comes at a minimal increase in binary size (for the library, as actual
native modules might not even increase in size in practice).
2019-04-10 16:51:51 +02:00
Bastiaan Olij f0fe88bd36
Merge pull request #260 from aqnuep/basis_convention
Make Basis look column-major while retaining a row-major representation
2019-04-10 21:57:03 +10:00
Bastiaan Olij 65b3bcc833
Merge pull request #261 from Calinou/improve-buildsystem-2
Fix and improve the build system
2019-04-10 21:55:38 +10:00
Daniel Rakos abccf9a050 Make Basis look column-major while retaining a row-major representation
Per https://github.com/godotengine/godot/issues/14553:
Godot stores Basis in row-major layout for more change for efficiently
taking advantage of SIMD instructions, but in scripts Basis looks like and
is accessible in a column-major format.

This change modifies the C++ binding so that from the script's perspective
Basis does look like if it was column-major while retaining a row-major
in-memory representation. This is achieved using a set of helper template
classes which allow accessing individual columns whose components are
non-continues in memory as if it was a Vector3 type. This ensures script
interface compatibility without needing to transpose the Basis every time
it is passed over the script-engine boundary.

Also made most of the Vector2 and Vector3 class interfaces inlined in the
process for increased performance.

While unrelated (but didn't want to file a separate PR for it), this change
adds the necessary flags to have debug symbol information under MSVC.

Fixes #241.
2019-04-08 16:28:41 +02:00
Hugo Locurcio 976a188837
Fix and improve the build system
- Fix automatic architecture detection
- Fix compiling with MinGW on Linux
  - MinGW on Windows is still not working though
- Default to Clang on macOS
- Remove redundant `use_custom_api_file` option
- Format SConstruct using Flake8

This closes #245.
2019-04-07 15:40:49 +02:00
Bastiaan Olij df04c4097f
Merge pull request #259 from BastiaanOlij/update_3.1_stable
Synced with Godot 3.1 stable
2019-04-07 17:05:48 +10:00
Bastiaan Olij 459d3d28e4 Synced with Godot 3.1 stable 2019-04-07 17:59:53 +10:00
Bastiaan Olij c714f99376
Merge pull request #235 from lzubiaur/fix-osx-arch
Set default arch to 64bits for osx platform
2019-04-07 15:48:22 +10:00
Thomas Herzog 05e5f5cd5e
Merge pull request #243 from PoignardAzur/patch-1
Add instructions to use submodules
2019-03-13 16:51:53 +01:00
Olivier FAURE a76df5c7d1
Add instructions to use submodules
Git submodules are a little tricky to use, but are the default
way to go when adding a github project as a dependency in C++.

Add instructions on how to add godot-cpp as a dependency when
working from an existing repository.
2019-03-13 15:56:53 +01:00
Thomas Herzog 422140dd61
Merge pull request #242 from touilleMan/correct-makefile-args
Fix Makefile platform and bits arguments passing to scons
2019-03-10 19:33:49 +01:00
Emmanuel Leblond 0fa4ad290d
Fix Makefile platform and bits arguments passing to scons 2019-03-10 12:38:55 +01:00
Thomas Herzog cfb4dcfad2
Merge pull request #239 from Calinou/use-markdown-license
Use Markdown format for the license
2019-02-25 08:41:42 +01:00
Hugo Locurcio 45a9f58f5e
Use Markdown format for the license 2019-02-24 15:57:29 +01:00
lzubiaur e0295d7cd4 Set default arch to 64bits for osx platform 2019-02-12 08:32:26 +09:00
Thomas Herzog 2a4e82b77e
Merge pull request #229 from arimus/binding-typename-fix
escape 'typename' keyword, which is causing errors when generating bindings
2019-02-04 08:46:19 +01:00
David Castro 30500632b1 escape 'typename' keyword, which is causing errors when generating bindings 2019-02-03 17:55:16 -08:00
Bastiaan Olij 262d53c05e
Merge pull request #221 from bruvzg/rect2_pos
Renamed Rect2::pos to Rect2::position
2018-12-28 20:19:44 +11:00
bruvzg aad175aa09
Renamed Rect2::pos to Rect2::position 2018-12-13 11:10:25 +02:00
Bastiaan Olij 342593c78d
Merge pull request #187 from Acclution/cmake
Added cmake build script
2018-12-04 21:58:26 +11:00
Acclution 7a22fd0a78 Updated cmake to the new nativescript 1.1 2018-12-02 22:14:26 +01:00
Bastiaan Olij a3b936d3b6
Merge pull request #210 from bruvzg/fix_custom_subclass_tags
Fix tags/cast_to for custom subclasses.
2018-12-03 07:48:19 +11:00
Bastiaan Olij 607b8326a3
Merge pull request #214 from marcelofg55/scons_improv_mf
Improvements on SConstruct arch detection
2018-12-02 09:29:07 +11:00
Marcelo Fernandez 2500f308a9 Improvements on SConstruct arch detection 2018-11-28 14:19:50 -03:00
Bastiaan Olij bcc39bbf4b
Merge pull request #212 from BastiaanOlij/fix_sconstruct
Fixing a few typos in SConstruct
2018-11-28 11:06:32 +11:00
Bastiaan Olij d3d78df0b5 Fixing a few typos in SConstruct 2018-11-28 11:05:27 +11:00
bruvzg 0af05a45ce
Fix tags/cast_to for custom subclasses. 2018-11-28 00:08:45 +02:00
Bastiaan Olij 295950efd4
Merge pull request #208 from willnationsdev/scons
Replace ARGUMENTS with opts.Add/env and some cleanup
2018-11-28 08:52:38 +11:00
Bastiaan Olij 6fb835c312
Merge pull request #174 from marcelofg55/profiling_data
Profiling support
2018-11-28 08:50:42 +11:00
Marcelo Fernandez 209dd56cb0 Profiling support 2018-11-27 09:45:56 -03:00
Bastiaan Olij f4476351f0
Merge pull request #207 from bruvzg/more_nulls
Fix NULL dereferencing in get_from_variant and cast_to
2018-11-27 09:25:47 +11:00
bruvzg be5a012ff7
Fix NULL dereferencing in get_from_variant and cast_to 2018-11-26 08:11:31 +02:00
Will Nations 7dff130849 Replace ARGUMENTS with opts.Add/env and some cleanup 2018-11-25 23:29:30 -06:00
Bastiaan Olij 5225ab2bac
Merge pull request #206 from BastiaanOlij/add_clang_format
Implementing clang-format and applying it to all classes
2018-11-26 11:24:59 +11:00
Bastiaan Olij fc20fa3fce Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
Bastiaan Olij 0a6f5d052a
Merge pull request #205 from BastiaanOlij/advance_godot_headers
Hopefully last time for awhile, new godot_headers
2018-11-24 07:58:22 +11:00
Bastiaan Olij 73b661cd6c Hopefully last time for awhile, new godot_headers 2018-11-24 07:56:19 +11:00
Bastiaan Olij 1d3dbf2c51
Merge pull request #204 from bruvzg/fix_ref_2_variant
Fix NULL pointer dereferencing on uninstantiated Ref<T>() conversion to Variant
2018-11-24 07:54:02 +11:00
bruvzg c2b59773af
Fix NULL pointer dereferencing on uninstantiated Ref<T>() conversion to Variant 2018-11-22 23:41:33 +02:00
Bastiaan Olij f10ce0a6be
Merge pull request #203 from BastiaanOlij/new_godot_headers
Update submodule to latest godot_headers
2018-11-22 22:24:03 +11:00
Bastiaan Olij e7de09f1ce Update submodule to latest godot_headers 2018-11-22 22:23:24 +11:00
Bastiaan Olij 5ce458b50a
Merge pull request #202 from BastiaanOlij/redo_190
Redid PR 190 for master now that nativescript 1.1 has been merged
2018-11-22 22:19:17 +11:00
Bastiaan Olij d7982cfac3 Redid PR 190 for master now that nativescript 1.1 has been merged 2018-11-22 22:14:28 +11:00
Bastiaan Olij 8ffda12b83
Merge pull request #201 from bruvzg/ptrcall_fix_null_args
Fix passing NULL pointers as arguments via ptrcall
2018-11-22 21:29:44 +11:00
bruvzg 715d1dc82b
Fix passing NULL pointers as arguments via ptrcall 2018-11-19 22:40:31 +02:00
Bastiaan Olij 5f3d6bc233
Merge pull request #198 from bruvzg/fix_str_find_and_cmp
Add missing String::find from argument, and missing String::casecmp_to functions
2018-11-19 21:29:39 +11:00
Bastiaan Olij cec7c2a223
Merge pull request #197 from bruvzg/fix_icall_int64_and_tagbd_reg
Fix ptrcall int size and TagDB registration for classes with "_" in the name.
2018-11-19 21:29:03 +11:00
Bastiaan Olij e83fd994f8
Merge pull request #199 from BastiaanOlij/fix_xform
Redid kirsanium xform fix
2018-11-19 21:20:18 +11:00
Bastiaan Olij 987cca0d4d Redid kirsanium xform fix 2018-11-19 21:16:01 +11:00
bruvzg 39445f144c
Add missing String::(r)find(n) form argument
Add missing String::(*)casecmp_to functions
2018-11-18 14:37:06 +02:00