Commit graph

31394 commits

Author SHA1 Message Date
George Marques 5aeb390cd7
GDScript: Add speficic set/get instructions
When the base type is known at compile-time, we can get a direct
function pointer that is faster than the regular set/get paths.
2020-11-21 13:24:49 -03:00
George Marques 1ad5c926dc
GDScript: Add faster operator for known types
It now uses the direct operator function pointer, which increases
performance in evaluation.
2020-11-21 13:24:49 -03:00
George Marques c707d6fe71
GDScript: Gather instructions arguments beforehand
Almost all instructions need variant arguments. With this change they
are loaded in an array before each instruction call. This makes the
addressing code be localized to less places, improving compilation
overhead and binary size by a small margin.

This should not affect performance.
2020-11-21 13:24:49 -03:00
George Marques b6519d0d03
GDScript: Split Function code into multiple files
To improve organization and reduce the size of compilation units.
2020-11-21 13:24:49 -03:00
George Marques 15b085e8db
Add extra functions to VariantInternal
- Allow getting an opaque pointer, no matter the type (for ptrcall).
- Allow setting object pointer and id directly.
- Allow initializing the data given a type, to allow properly setting
  return types on ptrcalls.
2020-11-21 13:24:49 -03:00
Rémi Verschelde 48049b8d9e
Merge pull request #43713 from akien-mga/doc-node-internal-processing
doc: Warn about using Node internal processing
2020-11-20 18:56:05 +01:00
Rémi Verschelde 50eb039acf
Merge pull request #43716 from akien-mga/export-options-consistency
Export: Reorder options for consistency across platforms
2020-11-20 18:44:20 +01:00
Rémi Verschelde 932c6ff3fb
Merge pull request #43719 from akien-mga/nanosvg-3e403ec
nanosvg: Sync with upstream 3e403ec
2020-11-20 18:42:43 +01:00
Rémi Verschelde 34895e7b28
Merge pull request #43583 from Calinou/test-add-object
Add a test suite for Object
2020-11-20 14:03:12 +01:00
Rémi Verschelde 29f34782f0
Merge pull request #43514 from Calinou/test-add-rect2-rect2i
Add a test suite for Rect2 and Rect2i
2020-11-20 13:40:12 +01:00
Rémi Verschelde 24ea91685b
Merge pull request #43722 from Xrayez/doctest-update-2.4.1
doctest: Update to 2.4.1
2020-11-20 13:39:51 +01:00
Hugo Locurcio e924bf9dec
Add a test suite for Object 2020-11-20 13:24:14 +01:00
Hugo Locurcio 7cb21c21b3
Add a test suite for Rect2 and Rect2i 2020-11-20 12:53:37 +01:00
Rémi Verschelde d9dd3b2768
Style fix after #43517 2020-11-20 12:52:30 +01:00
Andrii Doroshenko (Xrayez) 282ac09eef doctest: Update to 2.4.1
Includes a patch for breakpoint inline assembly for macOS.
2020-11-20 13:50:07 +02:00
Rémi Verschelde d87e192be6
Merge pull request #43517 from Calinou/test-add-json
Add a test suite for JSON
2020-11-20 12:47:27 +01:00
Rémi Verschelde 91dfac244b
Merge pull request #43721 from Xrayez/doctest-no-override
doctest: Do not override command-line options
2020-11-20 12:35:47 +01:00
Andrii Doroshenko (Xrayez) dc980e5f96 doctest: Do not override command-line options
Those options were likely copy-pasted from documentation examples.
This change also allows to break in the debugger by default when
assertions fail, and this can be configured via command-line interface.
2020-11-20 13:21:45 +02:00
Rémi Verschelde 1bb6491992
nanosvg: Sync with upstream 3e403ec
Includes some loop condition fixes after fuzzing.

The previously identified regression (#43641) is now fixed upstream.
2020-11-20 12:01:29 +01:00
Rémi Verschelde 504efc5f9b
Export: Reorder options for consistency across platforms 2020-11-20 11:17:50 +01:00
Rémi Verschelde a655de89e3
doc: Warn about using Node internal processing
See #43689.

Also 'fixed' some spelling for behavior in publicly visible strings.
(Sorry en_GB, en_CA, en_AU, and more... Silicon Valley won the tech spelling
war.)
2020-11-20 09:52:37 +01:00
Rémi Verschelde 68ddab547b
Merge pull request #43703 from Xrayez/premature-timer
Do not start `Timer` upon manual switching of internal process
2020-11-20 09:44:30 +01:00
Andrii Doroshenko (Xrayez) afcb6f38db Do not start Timer upon manual switching of internal process
Prevents `Timer` to prematurely start and timeout immediately if internal
processing is enabled manually with `Timer.set_process_internal(true)` or
`Timer.set_physics_process_internal(true)`.

Even if the internal processing is enabled manually, the user still has to
actually start the timer with `start()` method explicitly.
2020-11-20 01:28:40 +02:00
Rémi Verschelde 6a683f8016
Merge pull request #43591 from madmiraal/fix-43520
Update joy button and stick names, enums and documentation
2020-11-19 20:43:44 +01:00
Rémi Verschelde f69339c2c2
Merge pull request #43692 from akien-mga/scons-leave-link-alone
SCons: Remove unnecessary $LINK overrides
2020-11-19 20:43:25 +01:00
Rémi Verschelde 71f53a5ba3
Merge pull request #43687 from akien-mga/macos-osxcross-link-arm64
OSX: Fix linking with osxcross for arm64
2020-11-19 17:14:42 +01:00
Rémi Verschelde 2e4bff1cfe
SCons: Remove unnecessary $LINK overrides
As of SCons 4.0.1, the default value for $LINK is $SMARTLINK, which itself
is a function that will use $CXX as linker for C++:

https://github.com/SCons/scons/blob/4.0.1/SCons/Tool/link.py#L327-L328
https://github.com/SCons/scons/blob/4.0.1/SCons/Tool/link.py#L54-L76

So we don't need to manually specify the same value as $CXX for $LINK.
2020-11-19 16:48:03 +01:00
Rémi Verschelde dbbbb53927
OSX: Fix linking with osxcross for arm64
For some reason the `-target` option on the `LINKFLAGS` was causing a weird
issue where osxcross' clang wrapper would attempt using the system `/bin/ld`
instead of the osxcross version (which is Apple's `ld64`).

The error message would be:
```
/bin/ld: unrecognized option '-dynamic'
```

Also removed from `CCFLAGS` for consistency, it seems to work fine with only
`-mmacosx-version-min`.
2020-11-19 16:32:32 +01:00
Marcel Admiraal 20f2b71e21 Update joy button and stick names, enums and documentation 2020-11-19 15:28:31 +00:00
Rémi Verschelde c9bd11a479
Merge pull request #43668 from GryphonClaw/master
added shortcuts/hotkeys for tileset editor plugin collision buttons, …
2020-11-19 14:17:23 +01:00
Rémi Verschelde b4f81e7b88
Merge pull request #43662 from EricEzaM/PR/INP3-command_serialization_optional
Made serialization of Command toggleable when saving InputEvents.
2020-11-19 13:38:55 +01:00
Rémi Verschelde 8cc01be213
Merge pull request #43682 from RandomShaper/warn_reference_singleton
Warn about singleton being a Reference
2020-11-19 13:37:45 +01:00
Eric M c92f83d3ca Made serialization of Command toggleable when saving InputEvents.
Made serialization of Command optional. If command is serialized, Control (On Win/Linux) or Meta (on Mac) are not.
Example use case: You are on Windows and you set a shortcut to be Control + E. This would serialize as Command=true and Control=true. If you then run this project on Mac, you would need to press Command AND Control to activate the shortcut - which is not what is intended. Now, you can set store_command to true, and it will only serialize to Command = true (no Control serialized). On Windows, this means Control. On Mac, it means only command.
2020-11-19 21:05:45 +10:00
Pedro J. Estébanez e1150bd912 Warn about singleton being a Reference 2020-11-19 12:01:54 +01:00
Rémi Verschelde b115ea4c28
Merge pull request #43681 from aaronfranke/grid-view-update
Update the 3D grid when the "View Grid" checkbox is changed
2020-11-19 11:56:41 +01:00
Aaron Franke 71d1909b39
Update the 3D grid when the "View Grid" checkbox is changed 2020-11-19 05:29:37 -05:00
Rémi Verschelde 68f2417528
Merge pull request #43665 from Nickswoboda/fix-invalid-free
Check uniform set validity before freeing
2020-11-19 10:06:51 +01:00
Rémi Verschelde 05b17d3dbf
Merge pull request #43664 from Phischermen/quit-documentation
Clarify that SceneTree::quit() does not immediately end the application.
2020-11-19 10:04:59 +01:00
Rémi Verschelde 319126a039
Merge pull request #43671 from m4gr3d/fix_zipalign_bug_on_windows
Fix zipalign command name on Windows machines
2020-11-19 09:00:47 +01:00
Fredia Huya-Kouadio c4f2d87747 Fix zipalign command name on Windows machines. 2020-11-18 23:30:45 -08:00
Rémi Verschelde 2ca1c17a5c
Merge pull request #43661 from EricEzaM/PR/INP2-rename_load_from_globals
load_from_globals() -> load_from_project_settings()
2020-11-19 07:40:21 +01:00
Rémi Verschelde eebd3e8aa1
Merge pull request #43657 from RandomShaper/fix_dupe_crash
Fix crash duplicating local-to-scene resources
2020-11-19 07:33:45 +01:00
GryphonClaw cf582262c2 added shortcuts/hotkeys for tileset editor plugin collision buttons, with suggested changes. 2020-11-18 19:54:27 -08:00
Nick Swoboda bce3e2c3f6 Check uniform set validity before freeing 2020-11-18 16:53:11 -08:00
Phischermen 371d12a2f0 Clarify that SceneTree::quit() does not immediately end the application. 2020-11-18 16:45:20 -08:00
Eric M e5376fb129 load_from_globals() -> load_from_project_settings() 2020-11-19 09:21:21 +10:00
Pedro J. Estébanez e99cf6bfe5 Fix crash duplicating local-to-scene resources 2020-11-18 23:45:30 +01:00
Rémi Verschelde a3a3b02bed
Merge pull request #43639 from timothyqiu/rotation-fix
Fixes rotation in select mode on macOS
2020-11-18 21:58:24 +01:00
Rémi Verschelde 818434fbcb
Merge pull request #43654 from qarmin/multiple_projects
Allow to open multiple projects when some are not imported or without main scene.
2020-11-18 21:57:42 +01:00
Rafał Mikrut b20c20a6f7 Allow to open multiple projects when some are not imported or without main scene. 2020-11-18 21:24:27 +01:00