Commit graph

31563 commits

Author SHA1 Message Date
George Marques
5518e2a68e
GDScript: Add faster instruction for validated constructor
Only for built-in types.
2020-11-21 13:30:17 -03:00
George Marques
e0dca3c6b6
GDScript: Add typed iterate instructions 2020-11-21 13:24:50 -03:00
George Marques
52ab64db69
GDScript: Add faster call instructions for builtin methods
Methods from builtin types can be called by using the function pointer
when the argument and base types are known at compile time.
2020-11-21 13:24:50 -03:00
George Marques
d8b22097f2
GDScript: Add faster call instructions for native methods 2020-11-21 13:24:50 -03:00
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
Fabio Alessandrelli
a82f70ea9f [HTML5] Libraries refactor for linting.
Initial work to make liniting easier.

This includes:
- Rename http_request.js to library_godot_http_request.js.
- Rename externs.js to engine.externs.js.
- New library_godot_runtime.js (GodotRuntime) wraps around emscripten
  functions.
- Refactor of XMLHttpRequest handler in engine/preloader.js.
- Few fixes to bugs spotted by early stage linting.
2020-11-21 14:22:40 +01:00
Aaron Franke
2c53e8b0e9
Use Vector2i instead of Vector2 for Image get_pixelv and set_pixelv
Co-authored-by: Andrii Doroshenko <xrayez@gmail.com>
2020-11-21 02:42:29 -05:00
George Marques
c8e3fb8b05
Variant: Merge get() and validated_get()
Since they do pretty much the same thing. The validated_get() was
renamed to get() since that is more performant.
2020-11-20 17:26:19 -03:00
George Marques
8a9e3524a9
Fix variant getters not setting return type
The validated getters were only setting the value without changing the
type, leading to wrong results. This uses the same path used for
methods to the same purpose.
2020-11-20 15:55:17 -03:00
Hugo Locurcio
6f24bc3e47
Add a test suite for AABB 2020-11-20 19:44:08 +01: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
Jordan Schidlowsky
8150f07a0b fix for two incorrectly bound texture formats 2020-11-19 14:20:29 -06: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