Commit Graph

3512 Commits

Author SHA1 Message Date
Rémi Verschelde a99879ba6c
MessageQueue: Change default queue size to 4096 KB
1024 KB was low enough that many users seem to hit it, which can lead to the
editor freezing.

The proper fixed as described in #35653 would be to implement a page allocator
to prevent this overflow, but as a stop-gap measure, we can increase the
default value to a more lenient 4096 KB which should be high enough for the
vast majority of use cases.

The default size can be brought down again if/when #35653 is properly fixed,
and if it's actually relevant from a memory point of view.

(cherry picked from commit 5009ba54b2)
2020-09-29 08:54:39 +02:00
PouleyKetchoupp f725d9cb73 Fix issues related to delay when processing events on Linux
3.2 backport of PR #41910:
Fix general keyboard input lag on X11 display server
Fix delay to process clipboard content from Godot in other programs
2020-09-26 15:32:40 +02:00
Rémi Verschelde 64b0f5db40
zstd: Update to upstream version 1.4.5
(cherry picked from commit 914591c9ae)
2020-09-24 14:43:11 +02:00
Andrii Doroshenko (Xrayez) 2bfb83c702
Make `Object::to_string` virtual
Allows to override printing via C++, not only via script.

(cherry picked from commit cfead57d1d)
2020-09-24 14:43:10 +02:00
Yilin Ma d571de5f81
added load resource pack with offset feature
(cherry picked from commit c524d50444)
2020-09-24 14:43:09 +02:00
Aaron Franke 1dcbcaaa0d
Change inequality comparison operators to use exact equality
(cherry picked from commit d0a1399a1b)
2020-09-24 14:43:08 +02:00
Tomasz Chabora 13d7404cd7
Check for null in InputMap::_find_event
(cherry picked from commit f4e34ac353)
2020-09-24 14:43:08 +02:00
Hugo Locurcio e04855ce00
Fix crash when opening a ZIP data pack
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
(cherry picked from commit 0b65342fd2)
2020-09-24 14:43:07 +02:00
Andrii Doroshenko (Xrayez) 1f42a8a073
Fix `List` swap behavior on front, back and adjacent elements
- immediately return if A == B;
- first and last elements (front, back) are updated upon relinking;
- handles a special case of forward and backward adjacent elements.

(cherry picked from commit ac69f092fc)
2020-09-24 14:43:07 +02:00
Marcel Admiraal 564d7101b4
Add missing reference to const T Vector::get().
(cherry picked from commit 4feba93630)
2020-09-24 14:43:06 +02:00
Rémi Verschelde c8859f0463
Fix typos with codespell
Using codespell 1.17.1.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2020-09-18 14:09:51 +02:00
Rémi Verschelde cb78a5d7ae
Linux/BSD: Fix support for NetBSD
Add __NetBSD__ to `platform_config.h` so that it can find `alloca`
and use the proper `pthread_setname_np` format.

Rename RANDOM_MAX to avoid conflict with NetBSD stdlib.

Fixes #42145.

(cherry picked from commit 5f4d64f4f3)
2020-09-18 10:29:52 +02:00
bruvzg e51fed9d1b
[3.2] Add window click-through support. 2020-09-17 12:36:01 +03:00
Pedro J. Estébanez ddd869135b Disable decayment of freed objects to null in debug builds 2020-09-08 19:47:39 +02:00
Marcel Admiraal 3697cc479d
Initialise Basis elements with a default Basis in the declaration.
Ensures a valid Basis is created with all constructors.

(cherry picked from commit 9149fb760c)
2020-09-08 15:04:54 +02:00
Marcel Admiraal c6cccdf0c6 Ensure header guards enclose entire header.
(cherry picked from commit f6ad1954f7)
2020-09-04 08:48:35 +02:00
Hugo Locurcio ee97e45a69 Improve the resource loading error message to mention the need to import
This is a common pitfall when setting up projects in a headless
environment.

(cherry picked from commit 58ed3037c0)
2020-09-04 08:48:17 +02:00
Yakov Borevich 63b2f69c7f
[funexpected] clear missed remaps on deinitialization, fixes godotengine/godot#34221
(cherry picked from commit 604bd75438)
2020-08-31 15:29:46 +02:00
Rémi Verschelde 5a96c24243
Revert "Check if global class file still exists before registering it"
And revert follow-up regression fix "Remap script path when registering class."

After the regression fix, the original issue is valid again so it's better
to go back to the previous state.

This reverts commits e264ae20d2 and
fceb64827e.

(cherry picked from commit f13207254c)
2020-08-25 14:33:46 +02:00
Rémi Verschelde 42dca43c50
Merge pull request #41029 from masi456/fix/40888
Make sure that Image is not locked before creation
2020-08-21 02:27:22 +02:00
lawnjelly 667c970b77 Optimize octree and fix octree leak
Prevents adding new octants until a limiting number of elements have been added to the current octant. This enables balancing the benefits of brute force against the benefits of spatial partitioning. The limit can be set per octree.

Project settings are added for rendering octree to set the best balance per project depending on number of tests per frame / tick, and the amount of editing of the octree.

Fixes octants being leaked when removing elements.

Optimize octree with cached linear lists

Storing elements in octants using linked lists is efficient for housekeeping but very slow for testing. This optimization stores additional local_vectors with Element pointers and AABBs which are cached and only updated when a dirty flag is set on the octant.

This is selectable with 2 versions of Octree : Octree and Octree_CL, Octree being the old behaviour. At present the cached list version is only used for the visual server octree (rendering) as it has only been demonstrated to be faster there so far.

This uses slightly more memory (probably a few kb in most cases) but can be significantly faster during testing (culling etc).

Co-authored-by: Sergey Minakov <naithar@icloud.com>
2020-08-18 11:02:21 +01:00
Rémi Verschelde e283d4b5c8 Update AUTHORS and DONORS list
New contributors added to AUTHORS:
@hinlopen, @naithar, @rrcore, @SkyLucilfer, @TwistedTwigleg

Thanks to all contributors and donors for making Godot possible!

---

Also changes to relevant code that parses the DONORS.md to match
the new tiers.

(cherry picked from commit d2d4c1c957)
2020-08-14 00:32:05 +02:00
Fabio Alessandrelli a97b84378c Remap script path when registering class.
Was causing `class_name`-defined scripts to not being loaded in exported
games due to the remap from `*.gd` to `*.gdc`/`*.gde`.

(cherry picked from commit fceb64827e)
2020-08-14 00:32:04 +02:00
bruvzg 8dab067c01
Add missing NULL termination to the String::repeat function. 2020-08-11 17:23:44 +03:00
Marcel Schneider c62ce03679 Make sure that a new image can only be created when the buffer is not currently locked 2020-08-05 20:55:31 +02:00
Wilson E. Alvarez 4f9ca00294 Check if global class file still exists before registering it
(cherry picked from commit e264ae20d2)
2020-07-29 18:23:03 +02:00
Nathan Franke b9e1db7e03
Revert "Fix Directory Open Check"
This reverts commit 3f898f5207.
2020-07-28 13:54:13 -04:00
Nathan Franke 9de0439a45
Revert "Follow-Up Fix Directory Open"
This reverts commit ec787f0134.
2020-07-28 13:53:57 -04:00
Nathan Franke 4c100a593f
Revert "Fix Directory make_dir and make_dir_recursive"
This reverts commit 9b36357544.
2020-07-28 13:53:30 -04:00
Wilson E. Alvarez 993a421333 Show errors on Object.call_deferred
(cherry picked from commit 1cd02ef600)
2020-07-28 00:40:07 +02:00
Pedro J. Estébanez fa08b0f377 Improve/fix packed data API
- Enhance directory API
- Fix `FileAccess::exists()` not checking for PackedData being disabled
- Fix moving to the parent directory (`..`)
- Allow absolute paths in existence checks
2020-07-27 11:24:00 +02:00
Rémi Verschelde a2edf04fd2
Merge pull request #40469 from nekomatata/virtual-keyboard-enter-fixes-3.2
[3.2] Fix Return key events in LineEdit & TextEdit on Android
2020-07-26 20:26:02 +02:00
Rémi Verschelde b40f3f9740 Style: Sync other changes from new fix_style.sh and clang_format.sh 2020-07-24 10:39:18 +02:00
Adam Bates b35970b9a5 issue-40396 - Added missing error strings to JSON parsing when array or object is never closed.
(cherry picked from commit 8f84dfa91d)
2020-07-24 10:31:57 +02:00
Nathan Franke 9b36357544 Fix Directory make_dir and make_dir_recursive
(cherry picked from commit 210ccb3a75)
2020-07-24 10:31:57 +02:00
Aaron Franke 3ab5183ffa
[3.2] Backport core documentation changes to 3.2
Also add AABB.abs()
2020-07-21 21:22:54 -04:00
PouleyKetchoupp c0b394572f Fix Return key events in LineEdit & TextEdit on Android
Depending on the device implementation, editor actions could be
received with different action ids or not at all for multi-line.

Added a parameter to virtual keyboards to properly handle single-line
and multi-line cases in all situations.

Single-line:
Input type set to text without multiline to make sure actions are sent.
IME options are set to DONE action to force action id consistency.

Multi-line:
Input type set to text and multiline to make sure enter triggers new lines.
Actions are disabled by the multiline flag, so '\n' characters are
handled in text changed callbacks.
2020-07-17 18:25:40 +02:00
Fabio Alessandrelli 468a1c0271 UDPServer handles PacketPeerUDP-client association
UDPServer now uses a single socket which is shared with the
PacketPeerUDP it creates and has a new `poll` function to read incoming
packets on that socket and delivers them to the appropriate peer.
PacketPeerUDP created this way never reads from the socket, but are
allowed to write on it using sendto.

This is needed because Windows (unlike Linux/BSD) does not support
packet routing when multiple sockets are bound on the same address/port.

(cherry picked from commit 147bbe2155)
2020-07-15 12:48:18 +02:00
Rémi Verschelde a06ee5e763 PO loader: Fix unclosed files and error messages
Fixes #40324.

(cherry picked from commit 47cc202972)

Also removes empty `p_path` as done in 4857648a16.
2020-07-15 12:48:18 +02:00
Andrii Doroshenko (Xrayez) 813fab55d8 Fix overriding compression related settings
(cherry picked from commit 1f73469b50)
2020-07-13 15:15:40 +02:00
Hugo Locurcio c2a4ce9380 Enable file logging by default on desktops to help with troubleshooting
- Use the `.log` file extension (recognized on Windows out of the box)
  to better hint that generated files are logs. Some editors provide
  dedicated syntax highlighting for those files.
- Use an underscore to separate the basename from the date and
  the date from the time in log filenames. This makes the filename
  easier to read.
- Keep only 5 log files by default to decrease disk usage in case
  messages are spammed.

(cherry picked from commit 20af28ec06)
2020-07-10 11:03:32 +02:00
Nathan Franke ec787f0134 Follow-Up Fix Directory Open
(cherry picked from commit 6952458538)
2020-07-10 10:21:39 +02:00
PouleyKetchoupp fe0adc4f77 Keep debug & verbose options after loading project from project manager
(cherry picked from commit b2d27214aa)
2020-07-10 08:51:21 +02:00
Nathan Franke 3f898f5207 Fix Directory Open Check
(cherry picked from commit 09aeb7706b)
2020-07-08 09:01:57 +02:00
bruvzg e9ab41b71d
[macOS, 3.2] Implement seamless display scaling. 2020-07-07 22:54:33 +03:00
Rémi Verschelde 07b24de868
Merge pull request #38724 from madmiraal/fix-8368-3.2
[3.2] Support SDL2 half axes and inverted axes mappings.
2020-07-06 23:10:47 +02:00
Maganty Rushyendra 7670e1fc79 Fix errors in overflow checks for String conversion to int
Current error checks for to_int and to_int64 do not issue overflow error
messages for INT64_MAX + 1, INT64_MAX + 2, and others close to the
limits. Likewise, error checks for hex_to_int, hex_to_int64 and bin_to_int64
issue false positive error messages for INT64_MIN or INT32_MIN. This commit
fixes these error checks.
2020-07-06 08:44:18 +08:00
Rémi Verschelde 8e6dd3191f Image: Improve error messages for invalid creation size
(cherry picked from commit b5488def47)
2020-07-03 15:34:30 +02:00
Paul Herman 850f07a4d9 Expose loading TGA images in Image.
(cherry picked from commit 7d4b3e6587)
2020-07-03 13:17:57 +02:00
Marcel Admiraal 50d69a5a3d Call CRASH_COND_MSG if key not found in HashMap get function.
(cherry picked from commit 1b05f449f0)
2020-07-03 13:17:57 +02:00
Fabio Alessandrelli dc8b7b3b17 Move frame delaying functions from Main to OS.
Will allow specific platforms to override it and avoid blocking on the
main/GUI thread.

(cherry picked from commit 1b6e3458b2)
2020-07-02 13:52:02 +02:00
Maganty Rushyendra cd3a3eb3eb Fix weekday calculation in get_datetime_from_unix_time for negative times
Fix calculation for negative times to ensure Sundays are wrapped around to '0'
instead of '7', making it consistent with the output for positive times.

(cherry picked from commit aae5f246ff)
2020-06-29 10:58:41 +02:00
Rémi Verschelde 94eaeb5e84
Merge pull request #39903 from RandomShaper/fix_object_rc_leak
Fix leaked ObjectRCs on object Variant reassignment
2020-06-28 09:53:32 +02:00
Pedro J. Estébanez b02e0b0c4b Fix debugger error when Dictionary key is a freed Object 2020-06-28 02:36:13 +02:00
Pedro J. Estébanez dca653cc3a Fix leaked ObjectRCs on object Variant reassignment
Bonus:
- Add some (un)likely magic
- Use memdelete() instead of memfree() (not strictly needed, but more correct)
2020-06-28 01:31:00 +02:00
Marcel Admiraal ebff150680 Support SDL2 half axes and inverted axes mappings. 2020-06-26 06:28:56 +01:00
Maganty Rushyendra afac2514f8 Fix upscaling image with bilinear interpolation option specified
Fix error in calculation of 4 nearest points in source image when
resizing image with bilinear interpolation.

(cherry picked from commit f24ec3878e)
2020-06-24 22:52:05 +02:00
Rémi Verschelde 571a0c60c0 Revert "Implement Skew in Node2D"
This reverts commit 7f61710183.

See #38868, in its current implementation a small skew value might end up
serialized to scene files due to floating point precision errors, which is
detrimental to VCS.

This can be cherry-picked anew once a fix for #38868 has been found.
2020-06-22 10:26:06 +02:00
Sergey Minakov af1788baf3 Variant: Fix potential crash when stringifying deleted Object
Fixes #38597.
2020-06-22 08:53:47 +02:00
Andy Maloney 7f18163ea6 [3.2] Ensure FileAccessBuffered structs are properly initialized 2020-06-19 11:32:53 -04:00
Aaron Franke 6e3a1074ce Simplify Transform2D get_rotation
(cherry picked from commit 0fa478a050)
2020-06-18 11:29:28 +02:00
Andrea Catania 74d10e766e - Added more euler rotation orders support.
- Fixed floating point issue on the old one.
- Fixed the equation on the get_euler_yxz function.
- Added unit tests.

This work has been kindly sponsored by IMVU.

(cherry picked from commit 2331300989)
2020-06-18 11:29:28 +02:00
bruvzg 2256946f79
[3.2] Add keyboard layout enumeration / set / get functions (macOS, Windows, Linux/X11). 2020-06-13 11:01:49 +03:00
Rémi Verschelde 362193db6a String: Use ABS macro in padding code
Follow-up to #39261.

(cherry picked from commit cbcc0eacd5)
2020-06-11 11:44:06 +02:00
Maganty Rushyendra 6344b75453 Enable zero padding with float specifier for format strings
Godot currently supports zero padding for integers, octals and
hexadecimals when using format strings, but not for floats.

This commit adds support for zero padding for floats, thus ensuring
consistent behavior for all types, and making Godot's format specifiers'
behavior closer to c's `printf()`.

Before: `print("<%07.2f>" % -0.2345)` prints `<  -0.23>`.
Now: `print("<%07.2f>" % -0.2345)` prints `<-000.23>`.
     `print("<%7.2f>" % -0.2345)` prints `<  -0.23>`.
(cherry picked from commit b7d835d9ca)
2020-06-11 09:41:37 +02:00
ntfs.hard a822d1f133 Fix for Expression class: inner string can be single quoted
(cherry picked from commit ec164b2301)
2020-06-11 09:41:13 +02:00
Pedro J. Estébanez f09046a9ab Fix potential crash when listing leaked objects
Note:
Casting to the C++ classes and calling the methods there would work as well,
but would require including he header files for the specific object types handled
here, which wouldn't be OK either.
2020-06-10 20:16:10 +02:00
Rémi Verschelde 7bf9787921 SCons: Format buildsystem files with psf/black
Configured for a max line length of 120 characters.

psf/black is very opinionated and purposely doesn't leave much room for
configuration. The output is mostly OK so that should be fine for us,
but some things worth noting:

- Manually wrapped strings will be reflowed, so by using a line length
  of 120 for the sake of preserving readability for our long command
  calls, it also means that some manually wrapped strings are back on
  the same line and should be manually merged again.

- Code generators using string concatenation extensively look awful,
  since black puts each operand on a single line. We need to refactor
  these generators to use more pythonic string formatting, for which
  many options are available (`%`, `format` or f-strings).

- CI checks and a pre-commit hook will be added to ensure that future
  buildsystem changes are well-formatted.

(cherry picked from commit cd4e46ee65)
2020-06-10 15:30:52 +02:00
Rémi Verschelde 51de6732c9 AStar: Make get_closest_point() deterministic for equidistant points
Closes godotengine/godot-docs#3667.
Supersedes #39405.

(cherry picked from commit 187ba4c5a8)
2020-06-10 15:30:52 +02:00
Rémi Verschelde ebb30ac45a Core: Add hints to run with --verbose when leaking nodes/resources at exit
(cherry picked from commit 2b5545270a)
2020-06-10 15:30:52 +02:00
Rémi Verschelde 1a1c30702d VariantParser: Fix crash on malformed vectors
Each time `r_err_str` is set, we should return a parse error.

Removed redundant `return OK;` which were already handled after the big
`if`/`else if`/`else` for `TK_IDENTIFIER`.

Part of #17372.

(cherry picked from commit e7ebda975a)
2020-06-10 15:30:52 +02:00
Fabio Alessandrelli b2c7f94ae2 Crypto as a custom instance class.
(cherry picked from commit 87cc283b8b)
2020-06-10 15:30:51 +02:00
Fabio Alessandrelli 402a7e0094 Fix editor crash when mbedtls is disabled.
(cherry picked from commit 054f52364f)
2020-06-10 15:30:51 +02:00
azagaya a6d8773d0b Fixing wrong blending rect methods
Using Color.blend function instead of custom code

Fixed clang_format

Removed unnecessary help

(cherry picked from commit b211a86ebe)
2020-06-10 15:30:51 +02:00
Hugo Locurcio 424d1b5fab Print errors when calling MIDI input methods on unsupported platforms
This partially addresses #32065.

(cherry picked from commit 9c0d214776)
2020-06-04 12:09:40 +02:00
Rémi Verschelde 77aa8c0095 Improve documentation of ProjectSettings::setup
Subsequent PRs adding and fixing support for bundled PCKs
did not update the documentation /o\

(cherry picked from commit 0183bfbb0f)
2020-06-04 11:07:54 +02:00
bruvzg c4e652a6a3 Docs: Fix order of variant constants.
(cherry picked from commit 409562558a)
2020-05-25 16:32:25 +02:00
Rémi Verschelde d5e380117f
Merge pull request #38952 from bruvzg/win_ink_block_mm_3
[3.2] Block WM_MOUSEMOVE during Windows Ink pen handling.
2020-05-22 14:34:29 +02:00
bruvzg 28aabf4f73
[3.2] Block WM_MOUSEMOVE during Windows Ink pen handling. 2020-05-22 14:05:53 +03:00
Andrii Doroshenko (Xrayez) a3cad44f44 Add `Image.save_png_to_buffer` method
Backported from da0457fa29.

This commit additionally exposes the method to scripting (4.0).
2020-05-20 15:38:20 +03:00
Rémi Verschelde b6c551e864
Merge pull request #38875 from bruvzg/tab_drv_sel_32
[Windows, 3.2] Add tablet driver selection.
2020-05-20 13:58:26 +02:00
SkyJJ 2197ef0566 Fix Android LineEdit editing bugs
(cherry picked from commit cc473b948f)
2020-05-20 12:07:08 +02:00
Andrea Catania b0ba122443 Removed const from OAHashMap iterator value
to allows to mutate the value while iterating over it.

(cherry picked from commit 97f9bbcfa3)
2020-05-20 11:35:28 +02:00
bruvzg 71b2abbfa3
[Windows, 3.2] Add tablet driver selection. 2020-05-20 09:36:56 +03:00
Pedro J. Estébanez 8349635ffc Fix leaks and crashes in OAHashMap
This changes the way the lifespan of items is managed to be consistent.

Bonus: Simplify cases of destroy-then-emplace.
2020-05-18 14:02:49 +02:00
Thakee Nathees 7cfbde19c9 Fix: can't convert Transform -> Transform2D
Fix: #38528
(cherry picked from commit e32cdbe568)
2020-05-11 11:01:13 +02:00
Technohacker 9584f24be5
Use DWMEnableBlurBehindWindow instead of WS_EX_LAYERED
Affects per-pixel transparency

The current method renders to the screen by copying the GLES output to a
DIB for transparency using the CPU instead of rendering directly to the
window via the GPU. This is slower and also forces the window to be borderless
as WS_EX_LAYERED affects the non-client region as well.

This change uses DWMEnableBlurBehindWindow which allows using the standard
glClearColor() background alpha and is also performed through the GPU,
eliminating CPU bottlenecks
2020-05-10 21:05:37 +05:30
Rémi Verschelde aa57bb0473
Merge pull request #38482 from RandomShaper/improve_yield_3.2
Fix object leaks caused by unfulfilled yields (3.2)
2020-05-09 22:03:00 +02:00
Marcel Admiraal 23d473f488 Fix array slicing.
(cherry picked from commit 4409f3cc68)
2020-05-06 23:28:44 +02:00
Pedro J. Estébanez 64344e6d1d Fix object leaks caused by unfulfilled yields
Now the stack saved in a `GDScriptFunctionState` is cleared as soon as the `yield()` operation is known not to be resumed because either the script, the instance or both are deleted.

This clears problems like leaked objects by eliminating cases of circular references between `GDScriptFunctionState`s preventing them and the objects they refer to in their saved stacks from being released. As an example, this makes using `SceneTreeTimer` safer.

Furthermore, with this change it's now possible to print early warnings about `yield()`s to released script/instances, as now we know they won't be successfully resumed as the condition for that happens. However, this PR doesn't add such messages, to keep the observed behavior the same for the time being.

Also, now a backup of the function name in `GDScriptFunctionState` is used, since the script may not be valid by the time the function name is needed for the resume-after-yield error messages.
2020-05-05 17:53:47 +02:00
bruvzg 78266c09c4
Add support for the WinTab API for pen input. (3.2) 2020-05-05 14:56:02 +03:00
HaSa1002 caadd761f2 Priorize Embedded PCKs on loading
If existing, embedded PCKs are loaded before the pcks the engine might
find next to it.

Fixes #37568

(cherry picked from commit fba98950c7)
2020-05-05 13:41:29 +02:00
Marcel Admiraal fa11b5d754 Check for empty vectors before trying to access a pointer to the first
element in Octree<T, use_pairs, AL>::cull_convex().

(cherry picked from commit 54c36adbec)
2020-05-05 13:41:29 +02:00
Rémi Verschelde ef715f37d5
Merge pull request #35091 from Faless/dtls/enet
[3.2] DTLS support + optional ENet encryption
2020-05-05 13:40:59 +02:00
Juan Linietsky 7f61710183 Implement Skew in Node2D
Skew is x-axis only, because it must be bidirectionally convertible to a 2x3 matrix, but you can subtract it  to the rotation to get the effect on y-axis

(cherry picked from commit efb1f7d76b)
2020-05-04 16:10:22 +02:00
Hugo Locurcio 6fb6107e6a Warn when trying to open `res://` or `user://` with `OS.shell_open()`
`OS.shell_open()` will pass on the path directly to the OS' shell
handler (which can handle file paths or URLs). It can't handle
Godot-specific paths, so these need to be converted with
`ProjectSettings.globalize_path()` first.

(cherry picked from commit d46e411b44)
2020-05-01 10:56:58 +02:00
Rémi Verschelde 510406af28
Merge pull request #38350 from RandomShaper/fix_variant_to_rid
Fix errors in Variant to RID conversion
2020-04-30 16:25:29 +02:00
Pedro J. Estébanez ee301bceb5 Fix errors in Variant to RID conversion 2020-04-30 10:23:30 +02:00
Rémi Verschelde 8d93303483
Merge pull request #37863 from ExpiredPopsicle/culling5
Fixed false positives in the culling system.
2020-04-30 08:05:11 +02:00
Kiri Jolly bac44ee19f Fixed false positives in the culling system.
This fixes numerous false positives coming out of the culling system.

AABB checks are now a full separating-axis check against the frustum, with the points of the frustum being compared to the planes of the box just as the points of the box were being compared to the planes of the frustum. This fixes large objects behind the camera not being culled correctly.

Some systems that used frustums that were (sometimes mistakenly?) unbounded on one or more side have been modified to be fully enclosed.
2020-04-28 17:14:06 -07:00
Rémi Verschelde 78f0cf40cb
Merge pull request #38257 from RandomShaper/imvu/fix_variantrc_gdnative
Fix GDNative compat breakage due to dangling Variants fix
2020-04-27 18:43:10 +02:00
Pedro J. Estébanez 3bdc0913a5 Make wording of all Variant warnings consistent 2020-04-27 13:15:52 +02:00
Pedro J. Estébanez ac8b4708a3 Fix GDNative compat breakage due to dangling Variants fix
This moves the instance id member from Variant to the ObjectRC so that Variant is still the same size as before the fix (and also regardless if debug or release build).
2020-04-27 13:07:52 +02:00
Tobias Mansfield-Williams 8b33b08c29 Add const to InputEventMouseButton::get_factor
(cherry picked from commit 982efb1864)
2020-04-27 10:16:21 +02:00
Pedro J. Estébanez d904d05e65 Fix dangling and reassigned Variants
This commit addresses multiple issues with `Variant`s that point to an `Object`
which is later released, when it's tried to be accessed again.

Formerly, **while running on the debugger the system would check if the instance id was
still valid** to print warnings or return special values. Some cases weren't being
warned about whatsoever.

Also, a newly allocated `Object` could happen to be allocated at the same memory
address of an old one, making cases of use hard to find and having **`Variant`s pointing
to the old one magically reassigned to the new**.

This commit makes the engine realize all these situations **under debugging**
so you can detect and fix them. Running without a debugger attached will still
behave as it always did.

Also the warning messages have been extended and made clearer.

All that said, in the name of performance there's still one possible case of undefined
behavior: in multithreaded scripts there would be a race condition between a thread freeing
an `Object` and another one trying to operate on it. The latter may not realize the
`Object` has been freed soon enough. But that's a case of bad scripting that was never
supported anyway.
2020-04-23 13:51:02 +02:00
Rémi Verschelde 253fc093b8 DocData: Skip unexposed classes
Properly expose classes that we actually want accessible.

(cherry picked from commit 0ef8bcac4d)
2020-04-21 14:15:34 +02:00
Vasiliy Makarov 982dee67f0 Fix square image resize
Fixes #37980

(cherry picked from commit d45e8734d1)
2020-04-21 14:11:43 +02:00
Rémi Verschelde faf858fe41 Revert "Made possible to specify where to dump the contents when loading a ".pck" file"
This reverts commit ffcfd9c8ea.

This was not so useful as is due to the way dependency paths are stored
in scenes and resources.
2020-04-20 13:48:02 +02:00
Michael Alexsander ffcfd9c8ea Made possible to specify where to dump the contents when loading a ".pck" file
(cherry picked from commit 3c261e0dfa)
2020-04-17 13:00:52 +02:00
Marcel Admiraal e869da9665 Remove unnecessary check for zero determinant in Basis::orthonormalize().
(cherry picked from commit 8e6e91f2cd)
2020-04-16 12:57:22 +02:00
Marcel Admiraal 5bd603a542 Fix Engine get_target_fps() returning float instead of int.
(cherry picked from commit 0b9e95cac5)
2020-04-16 12:47:19 +02:00
Zak Grumbles 6fa871027c Make dict erase node sequenced godotengine#37477
* Updated macro call to make the visual Dictionary Erase node sequenced.

(cherry picked from commit d648f77119)
2020-04-16 12:04:10 +02:00
Juan Linietsky 94f451e070 Ensure COWData does not reallocate on push back, fixes #22561
(cherry picked from commit 0c24a844ec)
2020-04-16 11:46:00 +02:00
Yuri Roubinsky 5914fdc067 Implements estimate/compute_cost for AStar2D
(cherry picked from commit bad77bcb52)
2020-04-16 11:35:52 +02:00
Bastiaan Olij a7438f0e61 Fix aspect ratio on hmd projection matrix 2020-04-05 16:58:33 +10:00
sumit0190 35c7628074 Read and write exported infs/nans correctly (#35388)
(cherry picked from commit c4dbd8a744)
2020-03-25 11:38:54 +01:00
Rémi Verschelde 86ecefa1a2 Fix potential divisions by 0 reported by MSVC
The `TextEdit` one was indeed a potential bug.
The `PCKPacker` one seems to be a false positive, it's already in a
`for` loop that depends on `files.size()`.

(cherry picked from commit ca4e4506db)
2020-03-25 11:38:54 +01:00
Hugo Locurcio 6e517f9da3 Tweak the message queue maximum size property hint
The minimum slider value no longer allows decreasing the value below
the default, as this can cause things to break in the editor.

The maximum slider value was also increased to 4096 since it can safely
be increased to that value (some add-ons may require it).

This closes #37052.

(cherry picked from commit 8d8c7a9383)
2020-03-25 11:38:53 +01:00
PouleyKetchoupp 82bee3f993 Added has_signal method for Object
(cherry picked from commit 258d91f883)
2020-03-25 09:36:41 +01:00
Rémi Verschelde c01e840f03
Merge pull request #36639 from RandomShaper/imvu/improve_drives_ux_3.2
Improve UX of drive letters (3.2)
2020-03-17 16:27:33 +01:00
Pedro J. Estébanez 6105dfdac9 Improve UX of drive letters
Namely, move the drive dropdown to just the left of the path text box and don't include the former
in the latter.

This improves the UX on Windows.

In the UNIX case, since its concept of drives is (ab)used to provide shortcuts to useful paths, its
dropdown is kept at the original location.
2020-03-17 14:48:54 +01:00
Rémi Verschelde d4e6eff2de ConfigFile: Improve error messages and complete docs
(cherry picked from commit f7c87ed3dd)
2020-03-06 23:51:26 +01:00
Michael Alexsander bd2a2a7e40 Turn Rect2's 'intersects_touch()' into an extra argument of 'intersects()'
(cherry picked from commit 8c8c48a7ad)
2020-03-06 23:51:26 +01:00
Yuri Roubinsky cbeb22eb73 Fix InputEventKey::echo type from INT to BOOL
(cherry picked from commit 5e3c64828a)
2020-03-04 12:40:15 +01:00
Rémi Verschelde 105b7468b1 Expression: Fix parsing integers as 32-bit
(cherry picked from commit ceba2b6761)
2020-03-04 12:40:14 +01:00
Mateo Dev .59 e13324a889 Core: Change _Marshall class inherit from Reference to Object
(cherry picked from commit 9e8e5ebdc7)
2020-03-04 12:40:14 +01:00
clayjohn 2c0d391c48 Force mipmaps off when importing RGBA4444 textures 2020-02-29 19:23:56 -08:00
Fabio Alessandrelli 35a9f0fe64 New PacketPeerDTLS and DTLSServer classes.
Custom instance implementation via the mbedtls module.
2020-02-25 11:35:47 +01:00
Fabio Alessandrelli 2c8340bee9 UDPServer and PacketPeerUDP connect_to_host.
UDP sockets can be "connected" to filter packets from a specific source.
In case of a bound socket (e.g. server), a new socket can be created on
the same address/port that will receive all packets that are not
filtered by a more specific socket (e.g. the previously connect socket).

This way, a UDPServer can listen to new packets, and return a new
PacketPeerUDP when receiving one, knowing that is a "new client".
2020-02-25 11:35:47 +01:00
Fabio Alessandrelli 6b9240aa84 Add peek option to NetSocket recv_from. 2020-02-25 11:26:34 +01:00
Haoyu Qiu c81241e6c0 Fixes crash when resource file is corrupted
(cherry picked from commit 832a5c860b)
2020-02-14 16:07:41 +01:00
Pedro J. Estébanez 541251dff7 Add ConfigFile::parse()
(cherry picked from commit e5bd3b707f)
2020-02-14 16:06:36 +01:00
Pedro J. Estébanez edb70682d5 Fix VariantParser::StreamString EOF determination
(cherry picked from commit 521da75380)
2020-02-14 16:06:07 +01:00
dankan1890 7ccfbd61a4 Fixed String::humanize_size crash.
Close #35872

(cherry picked from commit ca0ee767cb)
2020-02-14 15:59:12 +01:00
nathanwfranke 2d8289579a Fix bug where Control at origin with 0 size not rendered
Make a new method instead to make the code more elegant


Move Function down a bit


(cherry picked from commit e5cb557b73)
2020-02-14 15:56:12 +01:00
Rémi Verschelde 505fee0b6d Color: Fix deprecation warning mentioning 'get_v()' instead of 'v'
Fixes #35657.
2020-01-28 12:41:04 +01:00
Rémi Verschelde cab55bbb9d MessageQueue: Fix setting name in OOM error message
Cf. #35653.
2020-01-28 09:03:46 +01:00
Haoyu Qiu f7d4e6ef6b Fixes invalid writes in Image operations 2020-01-28 13:47:28 +08:00
Rémi Verschelde c8d64de766
Merge pull request #35521 from Calinou/improve-error-macros
Improve and document error macros
2020-01-26 16:39:11 +01:00
Rémi Verschelde cbdbfb00ca doc: Document named color constants
Busywork but it's good for our completion rate :)
2020-01-26 12:08:16 +01:00
Hugo Locurcio 37d55ff153
Improve and document error macros
Documentation can be visible in many IDEs by hovering the macro
anywhere it's used.

Error message styling was also tweaked for consistency.
2020-01-24 17:19:57 +01:00
Hugo Locurcio a002b93d86
Add explanations for errors related to Vector/Quat normalization 2020-01-24 14:19:23 +01:00
Rémi Verschelde c2e07db071
Merge pull request #35438 from MadEqua/virtual-keyboard-line-edit
Android virtual keyboard respecting LineEdit max length.
2020-01-23 08:20:24 +01:00
Bruno Lourenço a3bcdbeb78 Android virtual keyboard respecting LineEdit max length. 2020-01-23 01:52:49 +00:00
Hugo Locurcio 90a1f8d8a7
Make `OS.execute()` blocking by default if not specified
This makes `OS.execute()` calls quicker to set up when calling programs
in a blocking fashion.
2020-01-23 01:26:32 +01:00
Rémi Verschelde a8460bffd2
Merge pull request #35414 from Ovnuniarchos/AlsaMidiBadPitchBend
ALSA MIDI: Pitch bend and System Common messages
2020-01-22 22:12:57 +01:00
Rémi Verschelde 37897dba80
Merge pull request #35406 from lawnjelly/ortho-shadow
Replace CameraMatrix::get_viewport_size with get_viewport_half_extents, shadow culling with ortho camera and other affected issues
2020-01-22 22:02:09 +01:00
Ovnuniarchos 9c48eb1c59 ALSA MIDI driver:
Pith bend message now has correct size (was 2 bytes instead of 3).
	Recognized (but not implemented) 0xF? messages. SysEx messages will be reocognized as such, but their contents will be ignored.
2020-01-22 21:41:48 +01:00
lawnjelly eaf8e5ce52 Change CameraMatrix::get_viewport_size to get_viewport_half_extents
Fixes #26637.
Fixes #19900.

The viewport_size returned by get_viewport_size was previously incorrect, being half the correct value. The function is renamed to get_viewport_half_extents, and now returns a Vector2.

Code which called this function has also been modified accordingly.

This PR also fixes shadow culling when using ortho cameras, because the correct input for CameraMatrix::set_orthogonal should be the full HEIGHT from get_viewport_half_extents, and not half the width.

It also fixes state.ubo_data.viewport_size in rasterizer_scene_gles3.cpp to be the width and the height of the viewport in pixels as stated in the documentation, rather than the current value which is half the viewport extents in worldspace, presumed to be a bug.
2020-01-22 18:22:00 +00:00
Rémi Verschelde 409de53e72
Merge pull request #35423 from Faless/fix/object_emit_free
Make sure we know when deleting an emitting object
2020-01-22 14:52:54 +01:00
Fabio Alessandrelli 41f59ecfca Make sure we know when deleting an emitting object
We used a lock signals in the signal_map while emitting, because it was
not allowed to disconnect them while being emitted.
We used that lock to check if we where deleting an object during signal
emission.
Now that we allow to disconnect signals while they are being emitted, if
an object first disconnects, then gets deleted we can't know that a
signal was being emitted during the destructor.

This commit adds a new `_emitting` boolean member to Object to be set
while emitting and checked in the destructor, while removing the old
signal lock which is now unused.
2020-01-22 14:08:16 +01:00
Rémi Verschelde ff7e7bd260 Thread: Fix typo in destructor error message 2020-01-22 11:17:20 +01:00
Haoyu Qiu a7368a519e Fixes leak when importing zip in AssetLib 2020-01-22 09:34:18 +08:00
Rémi Verschelde 79aaafc686
Merge pull request #35408 from Faless/ws/fix_packet_count
Fix MultiplayerAPI crash when peer implementation misbehave.
2020-01-21 21:06:11 +01:00
Fabio Alessandrelli 50f1b035b8 Fix MultiplayerAPI crash when peer impl misbehave.
Also fix WebSocketMultiplayer::get_available_packet_count() return value
when peer is not configured to use the multiplayer API.
2020-01-21 20:46:32 +01:00
Eric Rybicki 439e0027ec Fix AtlasPacker ignoring semi-transparent pixels
Fixes #33106
2020-01-20 22:43:38 +01:00
Rémi Verschelde 11260fb87f
Merge pull request #35345 from timothyqiu/pck-packer-leak
Fixes leak when calling PCKPacker::pck_start multiple times
2020-01-20 07:00:11 +01:00
Haoyu Qiu 07941178f0 Fixes leak when pck_start multiple times 2020-01-20 12:16:37 +08:00
Haoyu Qiu aca0b2a459 Fixes XMLParser leak when open multiple times 2020-01-20 11:29:14 +08:00
Fabio Alessandrelli 534bf89976 PacketPeer use heap buffer for var encoding.
Used to allocate in stack (via alloca) which causes crashes when trying
to encode big variables.
The buffer grows as needed up to `encode_buffer_max_size` (which is
8MiB by default) and always in power of 2.
2020-01-19 11:49:10 +01:00
Rémi Verschelde 870ec61417
Merge pull request #35092 from AndreaCatania/frames_exp
Exposed physics frame count and idle frame count
2020-01-14 08:25:46 +01:00
Rémi Verschelde 0aeb5bbf62 Object: Avoid error on emit_signal with freed target
As advised by @reduz.
2020-01-13 22:20:18 +01:00
Andrea Catania 9c60502357 Exposed physics frame count and idle frame count 2020-01-13 17:53:10 +01:00
Rémi Verschelde f38bfccf42 Object: Remove error on disconnect of locked signals
According to 22637beb2e (commitcomment-36651823)
and as confirmed by @reduz, this seems not to be necessary now that we
copy-on-write.

This triggered freeze scenarios in cases where a node would be deleted
while being used as a target in a signal emission.

Fixes #34650.
Fixes #34769.

Now those two errors go back to reporting:
```
ERROR: emit_signal: Condition ' !target ' is true. Continuing..:
   At: core/object.cpp:1191.
```
2020-01-13 17:03:02 +01:00
Rémi Verschelde ab97f78fa5 Revert "Enable Vsync via Compositor by default"
This reverts commit 9600fd5dde.

Add comment warning about possible implications of using this option.

Fixes #35038.
2020-01-13 09:33:27 +01:00
bruvzg d07cdc594f
[macOS] Load PCK from the .app bundle resources, instead of changing working directory. 2020-01-10 18:02:29 +02:00
Rémi Verschelde 83d950b58e
Merge pull request #34968 from Calinou/enable-vsync-via-compositor
Enable Vsync via Compositor by default
2020-01-10 10:04:55 +01:00
Hugo Locurcio 9600fd5dde
Enable Vsync via Compositor by default
This feature was added in #33414 but it was disabled by default.
Now that it got some testing, it's probably safe to enable it
by default.
2020-01-09 22:22:11 +01:00
George Marques 3718f8f592
GDScript: Validate object instance on `is` operation
Avoids crashes on debug mode. Instead it now breaks the execution and
show the error in-editor. Will still crash on release.

Also add a similar check to Marshalls to ensure the debugger doesn't
crash when trying to serialize the invalid instance.
2020-01-09 13:59:33 -03:00
Tomasz Chabora 97273ce378 Check if resource exists before loading 2020-01-08 15:24:43 +01:00
Rémi Verschelde 14b24b6a71
Merge pull request #34875 from neikeq/api-hash-no-underscore-methodbinds
ClassDB: Exclude method binds starting with '_' from API hash
2020-01-08 08:32:25 +01:00
Ignacio Etcheverry 4be87c6016 ClassDB: Exclude method binds starting with '_' from API hash
These methods are not meant to be part of the scripting API.
These are not the same as virtual methods starting with '_', e.g.: '_process'.
2020-01-07 00:08:49 +01:00
Rémi Verschelde 8aea5decc6
Merge pull request #34020 from gytsen/unify-pack-version
PCK: Set VERSION_PATCH in header, factor out header magic
2020-01-06 14:04:55 +01:00
Rémi Verschelde e62941fb53
Merge pull request #34296 from timothyqiu/lock-33072
Fixes crash when using Resource::_take_over_path
2020-01-06 14:04:23 +01:00
Joost Heitbrink dc61323b2c PCK: Set VERSION_PATCH in header, factor out header magic
Unify pack file version and magic to avoid hardcoded literals.

`version.py` now always includes `patch` even for the first release in
a new stable branch (e.g. 3.2). The public name stays without the patch
number, but `Engine.get_version_info()` already included `patch == 0`,
and we can remove some extra handling of undefined `VERSION_PATCH` this
way.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2020-01-06 13:13:17 +01:00
Rémi Verschelde 8454804972
Merge pull request #33967 from Calinou/add-os-is-window-focused
Add an `OS.is_window_focused()` getter
2020-01-06 11:39:18 +01:00
Rémi Verschelde 0783874ff2
Merge pull request #34782 from akien-mga/multiplayerapi-set_network_peer-invalid
MultiplayerAPI: Fix disconnect errors when passing invalid peer
2020-01-03 14:33:25 +01:00
Rémi Verschelde 136846a6ec
Merge pull request #34772 from clayjohn/ETC-support-alpha
Fallback to RGBA4444 for textures with alpha set to ETC compression
2020-01-03 14:29:19 +01:00
Rémi Verschelde fa82664419
Merge pull request #34726 from nekomatata/polygon2d-antialiasing-fix
Fixed antialiasing option for Polygon2D with concave/hollow shapes
2020-01-03 14:17:05 +01:00
Rémi Verschelde 3cbfb11460 MultiplayerAPI: Fix disconnect errors when passing invalid peer
Fixes #34634.
2020-01-03 13:34:54 +01:00
Rémi Verschelde 9d3424f61d
Merge pull request #34688 from sheepandshepherd/gdnative_class_ptr
Expose is_class_ptr to GDNative for dynamic casts
2020-01-03 11:32:01 +01:00
clayjohn 7a9fc69a16 Fallback to RGBA4444 for textures with alpha set to ETC compression 2020-01-02 21:37:48 -08:00
sheepandshepherd 3056c4bd5a Expose cast_to to GDNative for dynamic casts 2020-01-03 04:27:13 +01:00
Rémi Verschelde eadf04e1dd
Merge pull request #34476 from volzhs/no-slash-localize_path
Make sure no additional slash being added with localize_path
2020-01-02 19:11:18 +01:00
Rémi Verschelde bde52cc688
Merge pull request #34618 from qarmin/vector_please_dont_crash
Don't use constant reference in Vector push_back, insert and append_array
2020-01-02 15:44:41 +01:00
Rémi Verschelde a97b08e7d2
Merge pull request #34745 from timothyqiu/vararg-return-nil-34743
Allows to doc vararg method return type as void
2020-01-02 15:20:58 +01:00
Rémi Verschelde e772a1241a Object::disconnect: Better errors when no signal or locked
It will now give information about the originating object instance
and when locked, the target callback.

This should help debugging editor and game issues that are now being
reported due to adding signal locking in
22637beb2e.
2020-01-02 14:51:50 +01:00
Haoyu Qiu 4d727f1ee6 Allows to doc vararg method return type as void 2020-01-02 21:37:26 +08:00
PouleyKetchoupp 1591677eb8 Fixed antialiasing option for Polygon2D
Some cases were not handled properly for Polygon2D after making changes in common code to fix Line2D antialiasing. Added an option for drawing polygons to differentiate the two use cases.

Fixes #34568
2020-01-01 11:40:14 +01:00
Rémi Verschelde a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Rémi Verschelde ccedda9c71
Merge pull request #34682 from Calinou/os-exit-code-nonportable-warning
Print a warning message if `OS.exit_code` is set to a non-portable value
2019-12-30 18:09:32 +01:00
Hugo Locurcio d441a6aefa
Print a warning message if `OS.exit_code` is set to a non-portable value
This also improves the related documentation.
2019-12-29 16:56:22 +01:00
Danil Alexeev 134755ebcf Add ord() function to Expression class
The ord() function was recently added in GDScript and VisualScript,
but was missed in the Expression class.
2019-12-29 09:20:10 +03:00
Rafał Mikrut 1ac701cc37 Don't use constant reference in Vector push_back, insert and append_array 2019-12-26 17:38:08 +01:00
Fabio Alessandrelli cbc772d696 Fix buffers size calculation in PacketPeerStream.
The calculation used to be wrong when exactly at a power of 2.
`nearest_shift` always return the "next" power of 2
`nearest_shift(4) == 3 # 2^3 = 8`.

On the other hand `next_power_of_2` returns the exact value if that
value is a power of 2 (i.e. `next_power_of_2(4) == 4`).

I.e. :
```
WARN_PRINT(itos(next_power_of_2(4)) + " " + itos(1 << nearest_shift(4)));
// WARNING: ... : 4 8
```

Is this by design?
2019-12-22 15:35:44 +01:00
volzhs 02d5591d9d Make sure no additional slash being added with localize_path 2019-12-20 14:49:01 +09:00
Haoyu Qiu e7e095da3f Encodes property names properly in project.godot 2019-12-20 10:42:08 +08:00
Rémi Verschelde 791c84bbbb
Merge pull request #34421 from Chaosus/fix_strcpy_warning
Fix build warning in ustring.cpp on Windows/MSVC platform
2019-12-19 12:19:45 +01:00
Juan Linietsky 28599e6c20 Suggest use of deferred or oneshot on disconnect if the signal is locked. Closes #34443. 2019-12-18 19:32:00 -03:00
Yuri Roubinsky 8674655a45 Fix build warning in ustring.cpp on Windows/MSVC platform 2019-12-18 17:40:51 +03:00
Rémi Verschelde 7d34d1a85f
Merge pull request #34348 from Catchawink/master
Fixed issues with using a relative path in the export window.
2019-12-17 22:24:34 +01:00
Juan Linietsky 0dd6079e4e Improve error message and do not spam forever. 2019-12-17 11:18:47 -03:00
Juan Linietsky 22637beb2e Restore signal locking, for some reason missing. 2019-12-17 10:43:51 -03:00
Catchawink b2a14042d5 Fixed issues with using a relative path in the export window.
Before this fix, opening relative export paths inside of an EditorFileDialog was not possible. This was fixed by modifying String::path_to_file() to save relative paths in EditorExportPreset::set_export_path() more appropriately and changing EditorFileDialog::set_current_dir() to open relative paths.
2019-12-16 09:50:42 -05:00
Aaron Franke 1b8b380993
Document that translated does not behave like rotated or scaled 2019-12-15 12:31:08 -05:00
Rémi Verschelde d3a07d3550
Merge pull request #33910 from Faless/net/android_mlock
Acquire MulticastLock on Android when using broadcast/multicast
2019-12-14 21:53:08 +01:00
Fabio Alessandrelli 9269d6be32 UDP sockets broadcast is now disabled by default.
Add method `set_broadcast_enabled` to allow enabling broadcast via
GDScript.
2019-12-14 17:48:16 +01:00
Rémi Verschelde f111d1aaed Drop b2d_convexdecomp. no longer necessary.
We now use `thirdparty/misc/triangulator.h` for all physics-related
(collision, navigation) triangulation needs.

Follow-up to #34293.
2019-12-13 23:29:52 +01:00
Rémi Verschelde d31ff039ed
Merge pull request #34310 from qarmin/shift_operators
Don't allow to use too big or too small shift count
2019-12-13 09:47:43 +01:00
Rafał Mikrut 162a64efcd Don't allow to use too big or too small shift operators 2019-12-12 20:00:26 +01:00
Haoyu Qiu 50c37ed986 Fixes crash when using Resource::_take_over_path 2019-12-12 14:39:03 +08:00
Rémi Verschelde 9abc0ad8a5
Merge pull request #27792 from Giacom/fix_quat
Fixes being unable to use the Quat(Vector3) constructor
2019-12-11 22:04:09 +01:00
Fabio Alessandrelli ab1bfb9007 NetSocket set_broadcast_enabled returns Error enum 2019-12-10 12:11:52 +01:00
Rémi Verschelde 2845e6a21a
Merge pull request #34040 from qarmin/unused_variable_more_precise_numbers
Removed unused variables, add some constants numbers
2019-12-10 08:25:31 +01:00
Rafał Mikrut ed1c4bc77d Removed unused variables, add some constants numbers 2019-12-10 05:13:02 +01:00
Hugo Locurcio fe06966181
Make some arguments in PCKPacker methods optional
Those arguments aren't required for most common use cases,
so making them optional should help with code readability.
2019-12-07 01:06:42 +01:00
Rémi Verschelde 95242b7faf ResourceLoader: Add language code matching for localized resources
Near matching was not implemented like in TranslationServer, so a
resource remapped for 'ru' (but not 'ru_RU') would not be used as
fallback if the system locale was 'ru_RU'.

Fixes #34058.
2019-12-04 16:53:40 +01:00
Rémi Verschelde 0fcb68ffa1 Translation: Refactor locale matching to use proper language code
The previous code only parsed the first two characters (potentially reading
out of bounds if input was invalid), but some locales use a 3-letter language
code (e.g. 'nah_MX').

So I refactored the logic a bit to properly parse the locale and extract the
part left of the regional code, if provided (supports both 'en_US' and 'en-US'
style).

I made TranslationServer::get_language_code() public as I'll use it in a
follow up commit.
2019-12-04 16:53:08 +01:00
TerminalJack e1dda5195c Added support for vertical syncing via the Windows OS compositor (DWM.) 2019-12-04 11:14:21 +01:00
Andrii Doroshenko (Xrayez) 749d917424 Fix severe performance drop while deflating polylines
Underscaled arc tolerance produced very small values so that changes
to this parameter were negligible when scaled internally, hence significant
performance drop (lots of intermediate points inserted in an arc). Now the
performance is mostly the same compared to other types of offsetting
(SQUARE, MITER).
2019-12-03 15:43:59 +02:00
Rémi Verschelde c3609eb211
Merge pull request #34072 from arlez80/master
fixed pitch bend value and MIDI running status on the InputEventMIDI.
2019-12-03 09:45:19 +01:00
あるる / きのもと 結衣 e8410c03f5 fixed set pitch bend value and implemented midi running status 2019-12-03 16:22:02 +09:00
Rémi Verschelde 10bae7c05b
Merge pull request #33857 from nekomatata/polygon-2d-antialiasing
Fixed antialiased option for Polygon2D
2019-12-03 07:51:16 +01:00
Fabio Alessandrelli 6f38aeef52
Merge pull request #33640 from mewin/http_head_request
Fix HTTP HEAD requests
2019-12-01 05:50:33 +01:00
PouleyKetchoupp e6ebc43d72 Fixed antialiased option for Polygon2D / Line2D
Polygon2D:
The property wasn't used anymore after switching from canvas_item_add_polygon() to canvas_item_add_triangle_array() for drawing.

Line2D:
Added the same property as for Polygon2D & fixed smooth line drawing to use indices correctly.

Fixes #26823
2019-11-28 22:57:27 +01:00
Hugo Locurcio 21a3923410
Add an `OS.is_window_focused()` getter
This makes it possible to know whether the window is focused
at a given time, without having to track the focus state manually
using `NOTIFICATION_WM_FOCUS_IN` and `NOTIFICATION_WM_FOCUS_OUT`.

This partially addresses #33928.
2019-11-28 16:42:51 +01:00
Patrick Wuttke 2cd68a2566 do not wait for response body when making a HEAD request 2019-11-26 14:17:34 +01:00
Emmanuel Leblond a1f1a1d798
Revert "Fix localise_path method so that uncached scripts don't sometimes get loaded with two backslashes"
This reverts commit 1342551664.
2019-11-26 13:42:18 +01:00
Rémi Verschelde 967cc2c014
Merge pull request #33862 from Faless/net/http_request_chunk_size
Add download_chunk_size property to HTTPRequest.
2019-11-25 14:29:59 +01:00
Fabio Alessandrelli ed19b4076e Add download_chunk_size property to HTTPRequest.
This allows setting the `read_chunk_size` of the internal HTTPClient.
This is important to reduce the allocation overhead and number of file
writes when downloading large files, allowing for better download speed.
2019-11-24 19:32:20 +01:00
Fabio Alessandrelli 9b2073aa97
Merge pull request #33652 from Black-Cat/http-client-fix
Fix HTTPClient::poll crash when connection set to null
2019-11-23 10:15:45 +01:00
Artem Burjachenko b73073ae36 Fix HTTPClient::poll crash when connection set to null 2019-11-23 11:06:14 +04:00
Rémi Verschelde 083d088de3
Merge pull request #33583 from qarmin/fix_overflows_unitialized
Fix some overflows and unitialized variables
2019-11-20 21:31:12 +01:00
Rafał Mikrut 99d8626f4a Fix some overflows and unitialized variables 2019-11-20 16:22:16 +01:00
stoofin 8abd64dcbb
Fixed bug caused by a copy/paste error in Face3::get_closest_point_to
s * edge0 = -d / a * edge0 = -edge0⋅v0 / (edge0⋅edge0) * edge0 = vector projection of -v0 onto edge0

By incorrectly using -e/c instead of -d/a, Face3::get_closest_point_to was returning the wrong point in certain cases.  Specifically, I noticed it returning vertex[0] when it should have been returning vertex[1].
2019-11-19 22:30:28 -08:00
Fabio Alessandrelli 0d7409adfb Fix explain message not being stripped in release.
Messages coming from ERR_EXPLAIN / ERR_*_MSG macros used to strip the
error explanation in release builds and was changed in a recent
refactoring.

This commit restores the old behaviour (fixing release builds).
2019-11-13 14:21:32 +01:00
Rémi Verschelde 6b1628f9fc
Merge pull request #33517 from madmiraal/fix-_MSG-macros
Send *_MSG macros' explanations directly to the _err_print_error().
2019-11-11 13:27:51 +01:00
Marcel Admiraal 83069a3c0f Remove ERR_EXPLAIN macros and the scaffolding they needed. 2019-11-11 10:57:00 +01:00
Marcel Admiraal d18b2e599d Remove all uses of ERR_EXPLAIN macros. 2019-11-11 10:24:04 +01:00
Marcel Admiraal b7fdac60f1 Send m_msg directly to _err_print_error(). 2019-11-10 08:03:54 +01:00
Hugo Locurcio e6d53ba75f
Expose the `OS.low_processor_usage_mode_sleep_usec` property
This makes it possible to change it at runtime in projects.
2019-11-08 18:53:25 +01:00
Rémi Verschelde 9d4e596c69 doc: Sync classref with current source
Fix incomplete binding.
2019-11-08 16:00:01 +01:00
Rémi Verschelde 0e54b2d43c
Merge pull request #33445 from kawa-yoiko/astar-soft-error
Emit an error rather than crash in A*
2019-11-08 14:18:26 +01:00
bruvzg 5d6ff7f2a2
Fix MinGW/clang/LLD/UCRT build. 2019-11-08 15:04:35 +02:00
Shiqing aac7ddf89f Emit an error rather than crash in A* 2019-11-08 20:32:50 +08:00
Rémi Verschelde 621dc7022f
Merge pull request #27742 from rxlecky/camera-replication
Game camera override
2019-11-08 10:02:18 +01:00
Rémi Verschelde 31f327a4a9
Merge pull request #33052 from KoBeWi/naughty_sliders
Fix analog input in sliders
2019-11-08 09:55:11 +01:00
Rémi Verschelde 665ee70edb
Merge pull request #33376 from jamie-pate/master
Fix #24137 Different number of leading zeros on MINGW printf("%lg")
2019-11-08 09:42:17 +01:00
Jamie Pate bdb7adecfb Fix #24137 Different number of leading zeros on MINGW printf("%lg")
Use _set_output_format() on MINGW platform to force _snprintf_s() to
conform to the C99 standard and match the other platforms.

Fixes #24137
2019-11-07 16:23:35 -08:00
Tomasz Chabora a7b202ef18 Fix analog input in sliders 2019-11-07 16:39:14 +01:00
Rémi Verschelde 77816fea8b
Merge pull request #32477 from aaronfranke/equal-approx-separate
Make is_equal_approx separate and make == exact again
2019-11-07 14:54:15 +01:00
Rémi Verschelde ed373a60b1
Merge pull request #30556 from kawa-yoiko/astar-directed
Improve support for directed graphs in A*; docs update included
2019-11-07 12:33:27 +01:00
Rémi Verschelde 99beb9afe6
Merge pull request #33380 from SaracenOne/localise_path_fix
Fix localise_path method
2019-11-06 22:33:13 +01:00
Marcel Admiraal 24469d9ce4 Remove implicit dependency on String from error_macros.h. 2019-11-06 10:29:53 +01:00
Saracen 1342551664 Fix localise_path method so that uncached scripts don't sometimes get loaded with two backslashes 2019-11-06 03:32:02 +00:00
Rémi Verschelde 68dc6c6c62
Merge pull request #33254 from SneakyFish5/update-zstd
Update zstd to 1.4.3
2019-11-03 18:07:34 +01:00
unknown 61ad365fc9 Update zstd to 1.4.3 2019-11-03 10:37:48 -06:00
Rémi Verschelde af4fd9de9c
Merge pull request #33238 from qarmin/other_fixes
Fix some crashes, overflows and using variables without  values
2019-11-01 22:12:47 +01:00
Rafał Mikrut 9ddb3265e1 Fix some crashes, overflows and using variables without values 2019-11-01 16:16:31 +01:00
George Marques 5d5df05ee1
Merge pull request #32643 from mewin/add_global_class
Check for cyclic inheritance when adding a global script class
2019-11-01 11:45:53 -03:00
Rémi Verschelde 962fc725c0
Merge pull request #33210 from nekomatata/pool-array-empty
Added empty() function to pool array types
2019-11-01 14:04:16 +01:00
PouleyKetchoupp 475115c0c3 Added empty() function to pool array types 2019-10-31 16:27:32 +01:00
Aaron Franke 8754e21f48
Fix "seperate" typos 2019-10-31 08:52:26 -04:00
Andrii Doroshenko (Xrayez) 56925b9c28 Provide and print error messages for JSON parsing
Core is not touched, only for binding and scripting.
2019-10-31 13:15:44 +02:00
Rémi Verschelde 7b708421b3
Merge pull request #33174 from hbina/fix_srgb_to_linear
Fixed uinitialized variable in srgb_to_linear table
2019-10-31 09:50:59 +01:00
bruvzg f675621725
[macOS, Windows, X11] Add graphic tablet pen pressure and tilt support to InputEventMouseMotion event. 2019-10-30 14:42:21 +02:00
Hanif Bin Ariffin f8c2b64c99 Fixed uinitialized variable in srgb_to_linear table
Old array's size was actually 255.

Fixes #33133
2019-10-30 08:34:30 -04:00
PouleyKetchoupp 3a26a0eaa7 Fixed remote inspector for tool scripts
Fixes #29506
2019-10-28 18:32:00 +01:00
Rémi Verschelde 7d710a745e
Merge pull request #32416 from bojidar-bg/32415-shared-metadata
Ensure object metadata is unique
2019-10-28 14:49:35 +01:00
Rémi Verschelde 63c5cd7eb8
Merge pull request #33104 from qarmin/fix_some_crashes
Fix some crashes and using null pointers
2019-10-28 08:37:59 +01:00
Rafał Mikrut e53e1c566a Fix some crashes and using null pointers 2019-10-28 08:07:29 +01:00
Rémi Verschelde c994eaa852
Merge pull request #32719 from nekomatata/dictionary-optimization
Optimized Dictionary hash() and duplicate() methods
2019-10-26 23:08:27 +02:00
Fabio Alessandrelli 198af06ff6 MultiplayerAPI cleanup cache when peer disconnects
We used to only cleanup path_get_cache and not path_send_cache causing
issues when a peer disconnects and then reconnects with the same ID.
2019-10-25 18:03:58 +02:00
bruvzg 1a0306abb1
Fix missing `z_verbose` and `z_error` symbols in debug iOS build. 2019-10-25 15:51:17 +03:00
Rémi Verschelde 091c37d921
Merge pull request #33030 from Xrayez/vformat-err-msg
Display error messages in console when vformat is called
2019-10-24 16:15:57 +02:00
Andrii Doroshenko (Xrayez) 113765b135 Display error messages in console when vformat is called 2019-10-24 15:14:55 +03:00
Marcel Admiraal ce352ce5b4 Initialise VMap and HashMap values to the default when they are created.
Assigns a default value in VMap and HashMap when new keys are created using
the array operator so they are the same as the other Map classes.

The non const version of the array operator can be used for both assigning a
value and retrieving a writeable version. In the Map template classes the
assign version is being used to create new keys, but sometimes not assigning
a value when retrieving a writeable version.

This does not address the problem that the default value may not be the
correct one, and it does not address the problem that new keys probably
should not be created when the array operator is used. These problems will
be addressed in a separate commit.
2019-10-24 08:18:34 +02:00
Rémi Verschelde e96319c7f3
Merge pull request #32670 from aaronfranke/mono-plane
[Mono] Change Plane intersect methods to return nullable Vector3
2019-10-23 21:44:05 +02:00
Erik 8b0546d93b Implement game camera override
Implemented uniform API in Viewport class to override 2D and/or
3D camera.

Added buttons in 2D and 3D editor viewport toolbars that override
the running game camera transform with the editor viewport camera
transform. Implemented via remote debugger protocol and camera
override API.

Removed LiveEditFuncs function pointers from ScriptDebugger class.
Since the debugger got access to the SceneTree instance (if one
exists), there is no need to store the function pointers. The live
edit functions in SceneTree are used directly instead. Also removed
the static version of live edit functions in SceneTree for the same
reason. This reduced the SceneTree -> Debugger coupling too since
the function pointers don't need to be set from SceneTree anymore.

Moved script_debugger_remote.h/cpp from 'core/' to 'scene/debugger/'.
This is because the remote debugger is now using SceneTree directly
and 'core/' classes should not depend on 'scene/' classes.
2019-10-23 02:51:32 +01:00
Cagdas 0088385556 Add request permission automatically at android 2019-10-22 22:52:13 +03:00
Rémi Verschelde 28eca3649d
Merge pull request #30622 from creikey/fix-path-caching
PackedScene resources are freed before they are saved
2019-10-21 13:53:45 +02:00
Aaron Franke 218f38c7ec
Expose is_equal_approx and restore == to be exact again
This commit changes behavior for GDScript and C#.

Also did some organizing of the order to logically group related methods, mostly for Rect2 and AABB.
2019-10-14 16:48:59 -04:00
Aaron Franke aeb7075628
Replace vector == and is_zero_approx(distance) with is_equal_approx
Internal changes only
2019-10-14 16:47:42 -04:00
Aaron Franke 86922ff70b
Make is_equal_approx separate for structures
This commit adds exposed behavior for C#
2019-10-14 16:46:54 -04:00
qarmin 616ab4fac2 Small fixes to redundand code, copy paste bugs 2019-10-14 11:40:55 +02:00
qarmin 04c6579fd7 Don't use in some functions empty PoolByteArrays 2019-10-11 11:39:40 +02:00
Rémi Verschelde 7f075e519a
Merge pull request #32741 from qarmin/fix_string_utf_ascii
Don't use to_utf8() and to_ascii() on empty String
2019-10-11 11:24:40 +02:00
qarmin c62da553cb Don't use to_utf8() and to_ascii() on empty String 2019-10-11 09:13:30 +02:00
PouleyKetchoupp 7dc0e68a53 Optimized Dictionary hash() and duplicate() methods 2019-10-10 18:12:20 +02:00
qarmin 684156f711 Fix decompress PoolByteArray crash 2019-10-10 17:15:10 +02:00
Hugo Locurcio 0528ce0a2a
Fix crash when using `Node.get_as_property_path()`
This closes #32679.
2019-10-09 15:44:00 +02:00
Aaron Franke 643874f8ca
[Mono] Change Plane intersect methods to return nullable Vector3 2019-10-08 22:47:22 -04:00
Rémi Verschelde 106e21fd5f
Merge pull request #32478 from AlexHolly/fix-rect2-encloses
Make Rect2.encloses return true on same size
2019-10-08 16:21:45 +02:00
Rémi Verschelde c2edaa97f3
Merge pull request #32426 from gianllucah/master
Option to erase a section key in ConfigFile
2019-10-08 15:46:13 +02:00
Patrick Wuttke d8b36a452c check for cyclic inheritance when adding a global class 2019-10-08 11:54:29 +02:00
Marcel Admiraal c2aa3e2351 Remove circular include between core/typedefs.h and core/error_macros.h 2019-10-08 11:03:57 +02:00
Gianlluca 54cba54a45 Added a method to erase section key in ConfigFile 2019-10-07 18:11:19 -03:00
Marcel Admiraal 40197685bb Remove circular dependency between Vector3 and Basis. 2019-10-07 16:26:27 +02:00
Hugo Locurcio 3b8004865d
Remove redundant condition in `String::_humanize_digits()` 2019-10-04 18:07:06 +02:00
Andrii Doroshenko (Xrayez) a0d00c0e99 Bind the `String::humanize_size` method
The method signature is also changed to use `uint64_t` instead of `size_t`
for it to be Variant-compatible.
2019-10-04 15:51:13 +03:00
Rémi Verschelde 00417675fa
Merge pull request #32524 from qarmin/fix_string_builder_null_memcpy
Don't add to StringBuilder empty String
2019-10-03 21:24:04 +02:00
qarmin 2bc7f9e545 Fix small memory leak in PackedSourcePCK::try_open_pack 2019-10-03 19:45:41 +02:00
qarmin df03d9c2c5 Don't add to StringBuilder empty String 2019-10-03 19:14:29 +02:00
Alexander Holland a681c90009 Make Rect2.encloses return true on same size 2019-10-02 03:27:48 +02:00
Bojidar Marinov 0b251997bb
Ensure object metadata is unique
Closes #32415
2019-09-28 18:15:23 +03:00
Shiqing c2b824687d Reduce memory usage for edges in A* and add tests 2019-09-28 16:17:52 +08:00
Rémi Verschelde 7a67ae01a4
Merge pull request #32249 from hbina/a_star_ignore_disabled
Add option to consider disable points
2019-09-27 22:41:49 +02:00
Hanif Bin Ariffin 7b3790d2cc Add option to consider disable points
Previously, disabled points will not be considered when performing
get_closest_point. This commit changes that by introducing an additional
flag for this behavior. Related issue: #31814
2019-09-27 11:24:59 -04:00
Rémi Verschelde 202440acce
Merge pull request #31932 from huisedenanhai/master
make core/Reference thread safe
2019-09-26 11:26:05 +02:00
Ruslan Mullayanov b4c927b514 Added an exit code to the blocking mode of OS::execute
Updated documentation accordingly.

Fixes #31881.
2019-09-26 08:12:07 +02:00
Rémi Verschelde 084481b79d
Merge pull request #32230 from kawa-yoiko/oa-backward-shift
Implement backward shift deletion for OAHashMap
2019-09-26 08:03:46 +02:00
Fabio Alessandrelli dcf0a60a52
Merge pull request #32228 from damianday/patch-1
TCP is_connected_to_host comparison error
2019-09-26 03:02:14 +02:00
Damian Day 5631850152
Update stream_peer_tcp.cpp 2019-09-25 23:45:32 +01:00
Rémi Verschelde 28fcc5e25a
Merge pull request #32291 from Dragoncraft89/add_load_resource_flag
Add flag to control the replacement of files by ProjectSettings.load_resource_pack
2019-09-25 16:30:01 +02:00
Florian Kothmeier aae25abf30
Add flag to control the replacement of files by ProjectSettings.load_resource_pack 2019-09-25 15:29:59 +02:00
Rémi Verschelde dec10dd776
Merge pull request #32051 from qarmin/some_error_explanation
Added some obvious errors explanations
2019-09-25 11:51:54 +02:00
qarmin 17732fe698 Added some obvious errors explanations 2019-09-25 10:28:50 +02:00
Tomasz Chabora 46e1c0670e Don't try to slice empty arrays 2019-09-24 21:33:09 +02:00
Rémi Verschelde 823c3def72 Fix copyright headers and style issues 2019-09-24 11:52:06 +02:00
Rémi Verschelde 4f294b958f doc: Sync classref with current source
Fix a few missing bindings or unspecified argument names and default values.
2019-09-24 11:52:06 +02:00
Rémi Verschelde ef2a7834c9
Merge pull request #31883 from aole/create-string-function-repeat
Create a GDScript String function repeat
2019-09-24 11:50:58 +02:00
Rémi Verschelde ed18e3f195
Merge pull request #32273 from Calinou/humanize-size-fix-i18n
Fix i18n in `String::humanize_size()`
2019-09-23 15:57:18 +02:00
Rémi Verschelde 2114898cb5
Merge pull request #31172 from creikey/add-array-slicing
Add array slice method
2019-09-23 15:26:27 +02:00
Rémi Verschelde 159470df08
Merge pull request #32275 from godotengine/skin_support
Added skin support and simplified APIs to override bone position + glTF 2.0 import fixes
2019-09-23 15:02:15 +02:00
Hugo Locurcio a51e8b1ff0
Fix i18n in `String::humanize_size()`
Calls to `RTR()` must be added to each string so the PO file generator
can pick them up.
2019-09-23 13:54:10 +02:00
Rémi Verschelde 46f909f8af
Merge pull request #32054 from puthre/variant_ref_optim
Optimized variant reference function.
2019-09-23 11:36:40 +02:00
Rémi Verschelde 393a0152ea
Merge pull request #32055 from qarmin/some_code_fixes
Changed some code found by Clang Tidy and Coverity
2019-09-23 10:00:31 +02:00
Rémi Verschelde b94460b328
Merge pull request #32032 from nekomatata/encrypted-file-get-path
Implemented get_path() & get_path_absolute() for FileAccessEncrypted
2019-09-23 09:32:58 +02:00
qarmin 50be65bf43 Changed some code found by Clang Tidy and Coverity 2019-09-22 18:45:08 +02:00
Shiqing 78bee16e05 Implement backward shift deletion for OAHashMap 2019-09-21 14:32:40 +08:00
Marios Staikopoulos 11e09e59d1 GLTF2 Import Fixes - Skin(s) to Skeleton - Skin Support 2019-09-20 23:08:58 -07:00
Damian Day 748c9bc205
TCP is_connected_to_host comparison error
We was returning true when the state was not connected, so we would never return true when the state was connected.
2019-09-21 02:18:46 +01:00
fhuya a7712cc9e4 Add new events and accompanying logic to notify when the app is paused and resumed on Android devices. 2019-09-19 13:29:49 -07:00
Cameron Reikes 757c509437 Add array slice method 2019-09-14 13:08:28 -07:00
Shiqing 98136418ac Improve support for directed graphs in AStar 2019-09-11 15:41:14 +08:00
Valentin Zagura 6a36779e89 Optimized variant reference function.
Optimized critical execution path in Variant::reference by removing expensive and unnecessary call to clear for atomic types.
2019-09-09 10:39:40 +01:00
PouleyKetchoupp afe34344a6 Implemented get_path() & get_path_absolute() for FileAccessEncrypted 2019-09-07 19:22:33 +02:00
Hugo Locurcio 9a94fe7d26
Improve the `String::humanize_size()` method
- Use "B" insted of "Bytes" to be more compact
- Use suffixes that denote a binary prefix
- Make suffixes localizable

This removes the need for the custom
`EditorNetworkProfiler:_format_bandwidth()` method.
2019-09-05 19:48:46 +02:00
Fabio Alessandrelli 768d637a1b
Merge pull request #31870 from JFonS/add_network_profiler
Add network profiler
2019-09-05 16:34:36 +02:00
jfons 8244f535cd Add network profiler 2019-09-05 09:48:36 +02:00
huisedenanhai 124e51fdde make core/Reference thread safe 2019-09-04 12:17:07 +08:00
iwek7 617797c47c Adds skip-breakpoints feature 2019-09-03 20:49:09 +02:00
Bhupendra Aole 073f625a91 Create a GDScript String function repeat
Fixes #30610
2019-09-03 13:06:13 -04:00
Rémi Verschelde a00a9e868e
Merge pull request #31021 from willnationsdev/script-reflection
Expose Script reflection methods to scripting API.
2019-09-03 18:33:55 +02:00
Rémi Verschelde 726711d8c5
Merge pull request #31756 from raphael10241024/fast_aabb_transform
a faster function to transform aabb
2019-09-03 12:26:43 +02:00
Rémi Verschelde 00258684d3
Merge pull request #31915 from KoBeWi/xformers
Don't transform global position of mouse input
2019-09-03 12:05:27 +02:00
Tomasz Chabora e21cc3cc8d Don't transform global position of mouse input 2019-09-03 00:58:10 +02:00
Aaron Franke f8b4cf0fc4
Check for exact equality before approximate equality 2019-09-01 14:02:14 -04:00
Andrii Doroshenko (Xrayez) 08272585e9 Remove redundant transform method in Geometry singleton
Transform2D's xform method can be used instead which handles
`PoolVector2Array` now (as well as 3D version).
2019-09-01 14:34:51 +03:00
Rémi Verschelde c693b5a5bd
Merge pull request #31761 from Xrayez/trans2d-vector2array
Add transform methods for PoolVector*Array
2019-09-01 13:07:25 +02:00
Rémi Verschelde 69de1eca01
Merge pull request #31667 from YeldhamDev/geometry_point_circle_cleanup
Add 'is_point_in_circle()' to Geometry class, and general file cleanup
2019-09-01 12:59:49 +02:00
Rémi Verschelde c8ae8f2fb1
Revert "Add __atomic_* operators support for atomic operations" 2019-09-01 12:19:44 +02:00
qarmin b244ab4acc Fix memory leak in ResourceFormatSaverBinary::save 2019-08-30 13:46:05 +02:00
Andrii Doroshenko (Xrayez) 07cff56f48 Add transform methods for PoolVector*Array
Similarly to `Vector2` and `Rect2` transforms in 2D and Vector3, Plane,
and AABB in 3D. PoolVector2Array and PoolVector3Array were the only
missing Variant types in both Transform2D and Transform respectively.
2019-08-29 14:47:33 +03:00
RaphaelHunter e7febd72d6 a faster funtion to transform aabb 2019-08-29 14:17:08 +08:00
Hugo Locurcio 5bd01bf637
Add a project description setting
The description is displayed as a tooltip when hovering the project
in the Project Manager. It can span multiple lines.

This partially addresses #8167.
2019-08-28 22:34:29 +02:00
Aaron Franke 34ab6549b1
[Mono] Various Color improvements
I also slid in a fix to C++ Vector3 > and >=
2019-08-27 22:05:18 -04:00
Michael Alexsander Silva Dias 6cc54a5864 Add 'is_point_in_circle()' to Geometry class, and general file cleanup 2019-08-27 18:01:05 -03:00
Rémi Verschelde 6b7117ce3f
Merge pull request #31662 from profan/perf/astar-reserve
Allow to reserve space for nodes in A* and elements in OAHashMap explicitly.
2019-08-27 10:09:08 +02:00
Robin Hübner 1031833fb0
allow to reserve space in OAHashMap explicitly and also in AStar.
* also handle overflow occurring in _get_probe_length
2019-08-27 00:38:35 +02:00
Rémi Verschelde 2f63811c9a
Merge pull request #25656 from bruvzg/macos_multi_instances
[macOS] Add ability to open multiple editor instances and global/dock menu access
2019-08-26 22:04:37 +02:00
Andrii Doroshenko (Xrayez) c362527cb5 Modify outdated comments and error messages regarding indexed images
Godot doesn't support indexed images anymore (FORMAT_INDEXED),
so those are removed to avoid any confusion.
2019-08-26 18:21:19 +03:00
bruvzg db6d4352ea
[macOS] Add methods to modify global and dock menus. Add ability to open multiple editor/project manager instances, recent/favourite project list to project manager dock menu and opened scene list to editor dock menu. 2019-08-26 16:45:49 +03:00
qarmin 33c62db7af Add forgotten pointer checking 2019-08-24 13:34:14 +02:00
Rémi Verschelde 51d50e167d
Merge pull request #31094 from aaronfranke/vector-sign-mod-etc
Add Vector2/3 sign and posmod functions, axis, docs, misc additions
2019-08-23 09:07:47 +02:00
Rémi Verschelde 3a53e792ef
Merge pull request #31513 from qarmin/int_overflow
Prevent int overflow and underflow
2019-08-23 09:05:25 +02:00
Andrii Doroshenko (Xrayez) f013596760 Allow to define and load script templates per project
Previously it was only possible to create custom script templates per
editor instance which could lead to certain name collisions, but now one
can create such templates per project tailored for specific use cases.

The default path to search for custom script templates is defined in
project settings via `editor/script_templates_search_path` setting as
`res://script_templates` path, yet this can be configured per project.

Templates have at most two origins now:

1. Project-specific, defined in `ProjectSettings`, for instance:
    - res://script_templates/
2. Editor script templates, for instance:
    - %APPDATA%/Godot/script_templates/

As script templates can have the same name over different paths,
the override mechanism was also added, enabling project-specific
templates over the editor ones.
2019-08-22 20:51:30 +03:00
qarmin 538405f9c7 Prevent int overflow and underflow 2019-08-22 17:22:35 +02:00
Rémi Verschelde 7402fd2c56 Revert "Feature: Add SHA256 for PoolByteArray"
This reverts commit e2c3bbabb0.

This was superseded by #29871 which adds more crypto features with a
dedicated interface.

Since this commit was never in a stable release (merged during 3.2 dev),
we revert it to avoid having to deprecate it in favor of the Crypto API.
See https://github.com/godotengine/godot/pull/31187#issuecomment-523377965
2019-08-22 13:44:57 +02:00
Rémi Verschelde 1a4dbd9ee2
Merge pull request #31437 from volzhs/vibrate-mobile
Support vibration for Android and iOS
2019-08-21 21:10:22 +02:00
Rémi Verschelde 99980d856b
Merge pull request #29871 from Faless/crypto/initial_pr
More Crypto, SSL server, crt/key as Resource, HashingContext
2019-08-21 18:03:03 +02:00
Fabio Alessandrelli ce5a3f56a6 Rewrite StreamPeerSSL with SSLContext helper class
connect_to_stream now accepts optional parameter to specify which
certificates to trust.
Implement accept_stream (SSL server) with key/cert parameters to specify
the RSA key and X509 certificate resources.
2019-08-21 16:59:38 +02:00
Fabio Alessandrelli cb31b8797e Add hashing context class 2019-08-21 16:59:38 +02:00
Fabio Alessandrelli 3495d1bfa0 Add hex_encode function to PoolByteArray 2019-08-21 16:59:38 +02:00
Fabio Alessandrelli 1b36aa662c Add Crypto custom class 2019-08-21 16:59:35 +02:00
volzhs 4061e5bb75 Support vibration for Android and iOS 2019-08-21 23:38:53 +09:00
Rémi Verschelde 05a4310899
Merge pull request #31402 from profan/perf/astar-improvements
A* performance improvements, use OAHashMap.
2019-08-21 11:27:12 +02:00
Rémi Verschelde 7b37321ae3
Merge pull request #31499 from nekomatata/fix-new-project-metadata
Setting project metadata doesn't fail when project_metadata.cfg doesn't exist
2019-08-21 08:54:32 +02:00
Robin Hübner 4bac393549
astar performance improvements, use oahashmap 2019-08-21 08:47:55 +02:00
PouleyKetchoupp b49226e085 Support for file not found in ConfigFile::Load and handle a few specific cases
EditorSettings::set_project_metadata: creates project_metadata.cfg if it doesn't exist
EditorPlugin::get_config: removed (not used)

Fixes #31444
2019-08-21 08:32:55 +02:00
Rémi Verschelde a8db4c848d
Merge pull request #31395 from ptrojahn/floatsarenasty
Replace is_zero_approx(A.distance_to(B)) with A==B
2019-08-20 12:54:40 +02:00
Paul Trojahn 7c9c6df7e4 Replace is_zero_approx(A.distance_to(B)) with A==B
Related to #22988 (Fixes the holes in the shape of
the first comment)
2019-08-19 18:16:58 +02:00
Fabio Alessandrelli c19871af6d Move CryptoCore to it's own folder.
Crypto classes will be placed in core/crypto.
2019-08-19 16:31:05 +02:00
Fabio Alessandrelli 5cb41faece Fix CryptoCore signatures, add SHA1 context.
Fix hash size in SHA256 signature
Fix source parameter in hash context update function to be const.
Add SHA1 hash context.
2019-08-19 16:29:37 +02:00
Rémi Verschelde 5c853a45e6
Merge pull request #31423 from Calinou/improve-node-signal-group-tooltip
Improve the scene tree signals/groups tooltip
2019-08-18 10:55:16 +02:00
Aaron Franke 092346d82b
Add Vector2/3 sign and posmod functions, misc additions
Also make the docs more consistent, add Axis enum to Vector2, add > and >=. and C# also gets % and an override for vector-vector mod.
2019-08-17 18:31:55 -04:00
Rémi Verschelde ad8746e0de DirAccessPack: Fix dir_exists and file_exists for res:// paths
Both methods check against containers using relative paths as index,
so the `res://` part needs to be stripped.

Fixes #26009.
2019-08-17 19:03:28 +02:00
Hugo Locurcio c62302a432
Improve the scene tree signals/groups tooltip
The tooltip now displays the number of connections and groups
that are assigned to the hovered node.
2019-08-17 14:20:16 +02:00
Rémi Verschelde d3153c28f0 Replace last occurrences of 'ERR_EXPLAIN' with 'ERR_FAIL_*_MSG'
The last remaining ERR_EXPLAIN call is in FreeType code and makes sense as is
(conditionally defines the error message).

There are a few ERR_EXPLAINC calls for C-strings where String is not included
which can stay as is to avoid adding additional _MSGC macros just for that.

Part of #31244.
2019-08-17 13:31:22 +02:00
Braden Bodily 71d71d55b5 Replace 'ERR_EXPLAIN' with 'ERR_FAIL_*_MSG' in 'core/' and 'editor/'
Condensed some if and ERR statements. Added dots to end of error messages

Couldn't figure out EXPLAINC. These files gave me trouble: core/error_macros.h, core/io/file_access_buffered_fa.h (where is it?),
core/os/memory.cpp,
drivers/png/png_driver_common.cpp,
drivers/xaudio2/audio_driver_xaudio2.cpp (where is it?)
2019-08-17 12:33:15 +02:00
Davide Busterna 5ba632a73b Fix image offset when upscaling with Lanczos 2019-08-15 10:54:38 +02:00
Rémi Verschelde b030834b63
Merge pull request #31321 from julianaito/master
Add __atomic_* operators support for atomic operations
2019-08-15 02:55:39 +02:00
Charlène 3185a1b274 Replace legacy __sync atomic operations with newer __atomic ones 2019-08-14 15:56:02 +02:00
Rémi Verschelde 6c607c3564
Merge pull request #31266 from IAmActuallyCthulhu/pr/remove-redundant-author-comments
Remove redundant author doc comments
2019-08-14 13:45:54 +02:00
Robin Hübner 7092dd9d58
remove unused self list include from astar 2019-08-13 18:28:56 +02:00
Rémi Verschelde e7d484982e
Merge pull request #31292 from iwek7/fixDebuggerInspectionForNodes
Fixes issue with debug inspecing of nodes that are not in the scene tree
2019-08-13 08:24:01 +02:00
miwanczuk 98a3b2e5f4 Fixes issue when inspecting nodes that are not in the tree 2019-08-12 17:06:44 +02:00
Rémi Verschelde 37a16fee05 Export: Remove temp files from cache after export
So far we left most temporary files lying around, so this attempts to
fix that.

I added a helper method to DirAccess to factor out the boilerplate of
creating a DirAccess, checking if the file exists, remove it or print
an error on failure.
2019-08-12 13:31:59 +02:00
Rémi Verschelde 5441aaf768
Merge pull request #31228 from aaronfranke/identity-constants
Add Basis constants and format Transform constants
2019-08-12 12:42:30 +02:00
IAmActuallyCthulhu 82b9557803
Remove redundant author doc comments 2019-08-12 04:26:38 -05:00
IAmActuallyCthulhu a940ed781c
Remove old doc comments in image_loader header 2019-08-10 08:13:44 -05:00
Aaron Franke 85f13a0d24
Add Basis constants and format Transform constants 2019-08-09 11:34:54 -07:00
Rémi Verschelde 22b42c3315
Merge pull request #30893 from profan/fix/err-explain
Implement error macros that come with an error message, replacing ERR_EXPLAIN.
2019-08-08 16:28:06 +02:00
Robin Hübner 8affda0916 implement accompanying error macros that come with an error message, to replace ERR_EXPLAIN usage. 2019-08-08 15:05:59 +02:00
Rémi Verschelde 274bac2783
Merge pull request #30934 from santouits/debugg
Hopefully fix the random crashes with threads
2019-08-08 14:50:47 +02:00
Rémi Verschelde e578c1fef8
Merge pull request #31195 from bojidar-bg/31143-funcref-call_funcv
Add FuncRef.call_funcv
2019-08-08 11:24:27 +02:00
Bojidar Marinov 7123fab771
Add FuncRef.call_funcv
Closes #31143
2019-08-08 11:58:57 +03:00
Rémi Verschelde b33042507b Translation: Fix logic bug finding match for regional locales
The  match test was inverted. The rest of the changes
are documentation and cleanup.

Fixes #26346 and fixes #31192.
2019-08-08 10:15:55 +02:00
Rémi Verschelde 1d5ae6da5b
Merge pull request #31047 from Zylann/save_exr
Add Image.save_exr()
2019-08-08 08:53:02 +02:00
Marc Gilleron cd2de77b04 Add Image.save_exr() 2019-08-07 21:17:47 +01:00
Rémi Verschelde ba541bceca
Merge pull request #31077 from qarmin/coverity_bugs
Change some code proposed by Coverity and Cppcheck
2019-08-07 13:49:33 +02:00
qarmin e0b5b21863 Add some code changes/fixes proposed by Coverity and Clang Tidy 2019-08-07 12:54:30 +02:00
Rémi Verschelde 365994a630
Merge pull request #30998 from Calinou/cap-warnings-errors-per-second
Cap the number of warnings/errors per second rather than per frame
2019-08-06 15:21:20 +02:00
TGRCDev c6f7015bca Fixed EOF flag not resetting on seek back 2019-08-05 18:20:18 -07:00
Aaron Franke a9c10450bd
[Core] [Mono] Optimize Wrap functions
Use is_zero_approx(), avoid a negative, and also rename "rng" to "range".
2019-08-04 20:38:38 -07:00
willnationsdev 88f79802f6 Expose Script reflection methods to scripting API. 2019-08-01 14:13:40 -05:00
Hugo Locurcio 47c615caf3
Cap the number of warnings/errors per second rather than per frame
This reproduces the behavior used for printing when using the remote
debugger. The default limit is 100 errors and 100 warnings per second,
which makes it possible to display much more GDScript warnings
before overflowing.

This also adds a "Too many warnings" message, so that warnings
don't look like errors when overflowing anymore.

This closes #21896.
2019-07-31 17:29:26 +02:00
santouits 13efc1bb06 Hopefully fix the random crashes with threads 2019-07-30 19:08:33 +03:00
Aaron Franke 7dbbb5eac7
[Mono] Deprecate Set methods
These silently fail, so they should be removed. I accidentally added most of these last year, trying to make everything else consistent with Quat, sorry!

Also, a few tiny nitpicking changes are included, like whitespace and misspellings.
2019-07-28 17:49:22 -04:00
Cameron Reikes b3cb58e7b3 Some resources are freed before they are saved
- PackedScenes freed before saved, so their path cache is lost
 - Solution is to move data to persistent static map
 - This patch will fix #30538
2019-07-25 17:21:47 -07:00
Rémi Verschelde 43238bb59a DirAccess: Drop compat get_next(bool *is_dir) which was hidden
Fixes this warning:
```
./core/os/dir_access.h:74:17: warning: 'virtual String DirAccess::get_next(bool*)' was hidden [-Woverloaded-virtual]
```

Part of #30790.
2019-07-25 11:09:57 +02:00
Rémi Verschelde 1481d299ea
Merge pull request #30776 from akien-mga/editor-configurable-float-step
Inspector: Make default float step configurable
2019-07-25 10:33:45 +02:00
Rémi Verschelde 336846e547 Inspector: Fix PROPERTY_HINT_SPRITE_FRAME not behaving as RANGE
This was a regression in 3.1 and later from the new inspector, where
PROPERTY_HINT_SPRITE_FRAME was not fully re-implemented. It's meant to
be a normal PROPERTY_HINT_RANGE which also automatically increments its
value when keyed in the animation player.

To avoid code duplication, I made the frames properties use the actual
PROPERTY_HINT_RANGE and introduced a PROPERTY_USAGE_KEYING_INCREMENTS
usage flag instead.
2019-07-25 09:29:51 +02:00
Rémi Verschelde aa062c54fc
Merge pull request #25090 from Chaosus/string_count
Added String.count method
2019-07-24 08:32:42 +02:00
Michael Alexsander Silva Dias 12ae7a4c02 Update some dead links in the codebase 2019-07-23 21:06:12 -03:00
Chaosus 080c0bb7fe Added count method to String 2019-07-23 18:55:54 +03:00
Rémi Verschelde d844e30614 Inspector: Make default float step configurable
Also allow lifting the decimal step formatting with a hint range step
of 0. A new `range_step_decimals()` is added for this to avoid breaking
compatibility on the general purpose `step_decimals()` (which still
returns 0 for an input step of 0).

Supersedes #25470.
Partial fix for #18251.
2019-07-23 17:31:38 +02:00
Rémi Verschelde 4c943cca2c
Merge pull request #30716 from qarmin/fixed_static_analiser_code
Fix some code found by Coverity Scan and PVS Studio
2019-07-23 15:08:44 +02:00
qarmin aab8da25ad Fix some code found by Coverity Scan and PVS Studio 2019-07-23 09:14:31 +02:00
Rémi Verschelde 9f5b77acc9
Revert "Expose "meta" to the Inspector" 2019-07-22 12:03:57 +02:00
Ignacio Etcheverry 2c85439da0 Make it a build error if a GetTypeInfo specialization cannot be resolved
Previously it was a runtime error message.
2019-07-22 00:08:35 +02:00
Rémi Verschelde 60efd67034
Merge pull request #30693 from Chaosus/lerp_angle
Added lerp_angle built-in function
2019-07-20 13:37:13 +02:00
Rémi Verschelde d15cf7b672
Merge pull request #30576 from qarmin/lgtm_coverage
Changed some code reported by LGTM and Coverity
2019-07-20 12:00:13 +02:00
Chaosus 6694c119d0 Added lerp_angles built-in function
Co-authored-by: Xrayez <https://github.com/Xrayez>
Co-authored-by: DleanJeans <https://github.com/DleanJeans>
2019-07-20 12:59:41 +03:00
qarmin 6cbaf7662f Changed some code showed in LGTM and Coverage 2019-07-20 08:09:57 +02:00
Rémi Verschelde c317a3ce16
Merge pull request #30354 from LikeLakers2/multinodeedit-same-type-properties
MultiNodeEdit now only shows properties with the exact same PropertyInfo data
2019-07-19 17:58:17 +02:00
Rémi Verschelde f796779f7c
Merge pull request #23310 from aaronfranke/posmod-int
Add integer posmod and rename default arg names
2019-07-19 15:07:49 +02:00
Rémi Verschelde 2ca3e47d66
Merge pull request #22642 from YeldhamDev/inspector_metadata
Expose "meta" to the Inspector
2019-07-19 14:39:23 +02:00
Aaron Franke a60f242982 Add integer posmod and rename default arg names
"posmod" is the integer version of "fposmod". We do not need a "mod" because of the % operator.

I changed the default arg names from "x" and "y" to "a" and "b" because they are not coordinates. I also changed pow's arg names to "base" and "exp". Also, I reorganized the code in the VS built-in funcs switch statement.
2019-07-18 16:33:43 -04:00
Rémi Verschelde 20a3bb9c48
Merge pull request #30226 from lawnjelly/interpolate
Add access to interpolation fraction for fixed timestep interpolation
2019-07-18 15:44:14 +02:00
Rémi Verschelde dfe228a865
Merge pull request #30341 from Toshiwoz/master
when doing Vector3 slerp it is not necessary to have it normalized.
2019-07-12 10:27:38 +02:00
lawnjelly bf6c301b9c Add access to interpolation fraction for fixed timestep interpolation
Addresses #30068

This is a prerequisite for allowing proper support for fixed timestep interpolation, exposing the interpolation fraction to the engine, modules and gdscript.

The interpolation fraction is the fraction through the current physics tick at the time of the current frame.
2019-07-11 08:25:26 +01:00
Rémi Verschelde 34d7484039
Merge pull request #30455 from qarmin/const_reference
Pass by reference to const
2019-07-10 15:43:15 +02:00
qarmin 01cc7a996b Use reference to constant in functions 2019-07-10 11:54:12 +02:00
Rémi Verschelde 68081b3f6e
Merge pull request #30188 from Andrettin/Method-Binding-Free-Function-Support
Method Binding Free Function Support
2019-07-09 22:33:43 +02:00
Andrettin e2a3ed3cd8 Added support for passing functions pointers (with a class instance as the first parameter) to method bindings 2019-07-09 21:18:39 +02:00
Rémi Verschelde 2d77390170
Merge pull request #30433 from akien-mga/cryptocore-string-escape
SCons: Fix MBEDTLS_CONFIG_FILE string escape
2019-07-09 08:27:40 +02:00
Rémi Verschelde f1a37be69c SCons: Fix MBEDTLS_CONFIG_FILE string escape
Fixes #30431, regression from #30277.
2019-07-08 18:05:48 +02:00
Fabio Alessandrelli 2f91e250f6 Add NULL-terminator the string passed to strtol.
This is actually expected by the function although it was apparently
working in GCC without the terminator, it breaks (at least some) clang
versions.
2019-07-08 17:15:10 +02:00
Rémi Verschelde 36424a6763
Merge pull request #30422 from Faless/net/tcp_connect_timeout
Add TCP connect timeout.
2019-07-08 13:39:00 +02:00