Commit Graph

27067 Commits

Author SHA1 Message Date
Juan Linietsky
88f84c78ca Store arrays inside of Variant as shared.
Arrays inside of Variant are unique and use reference counting.
When you assign a variant containing a packed array to another, or
when you call non const functions to arrays, this will work even
if the array is inside a dictionary, so they will from now pass
as reference.

The difference with regular variant arrays is that, once passed
to a function in the C++ API, they are no longer shared. This is
required for security and thread safety, as those arrays are
mainly used to pass data back and forth even between threads.
2020-02-23 22:42:26 +01:00
Rémi Verschelde
194fd2d5a5
Merge pull request #36089 from dreamsComeTrue/fix-autocomplete-quotes
Fix: auto brace complete for quoted strings
2020-02-23 22:13:27 +01:00
nathanwfranke
ad15edbc65 Partial revert "Fix two signal errors"
This partially reverts commit a31bc1b0ba.

Possible compatibility issues with #35864 that I am not sure about.

Do I need to change "connect" to "connect_compat"?
2020-02-23 15:04:45 -06:00
Rémi Verschelde
bd76ca01d4
Merge pull request #36485 from ofrank123/master
Fix crash after closing a GDScript LSP session
2020-02-23 21:42:31 +01:00
Rémi Verschelde
c3dc5fe12f
Merge pull request #36484 from akien-mga/scons-compiler-version-check
SCons: Add GCC/Clang minimum version check
2020-02-23 21:34:45 +01:00
Yuri Roubinsky
3b0638fe1c Changed default capsule axis to vertical
Co-authored-by: Hugo Locurcio <https://hugo.pro>
2020-02-23 23:18:01 +03:00
Rémi Verschelde
214d852ffd SCons: Add GCC/Clang minimum version check
Prevent using GCC 8 as it does not properly support C++17's
guaranteed copy elision which we now need.
(Upstream bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86521)

Follow-up to #36457 and #36436.
2020-02-23 21:13:29 +01:00
Michael Alexsander
f8c1bafc40 Add icons for some new variants 2020-02-23 16:48:19 -03:00
Oliver Frank
ed482f6167 Fix crash after closing a GDScript LSP session 2020-02-23 19:25:41 +00:00
Rémi Verschelde
a920f9727a
Merge pull request #36482 from Faless/debugger/fix_bp_cmp
Fix Breakpoint compare in new Debugger.
2020-02-23 14:34:40 +01:00
Fabio Alessandrelli
f72905aa29 Fix Breakpoint compare in new Debugger.
Only used to keep the hashmap, but clearly bogus.
2020-02-23 14:15:22 +01:00
Rémi Verschelde
223c5ef8a3
Merge pull request #36478 from qarmin/supsicious_operators_everywhere
Fix suspicious | and + operators
2020-02-23 10:30:06 +01:00
PouleyKetchoupp
a5505ce643 Fixed crash when connecting a signal in GDScript 2020-02-23 10:06:13 +01:00
Rafał Mikrut
d0621b954b Fix suspicious | and + operators 2020-02-23 09:28:54 +01:00
Rémi Verschelde
c9e1d98c62
Merge pull request #36411 from Janglee123/rect2-tween
Added tween support for Rect2
2020-02-23 08:46:48 +01:00
Rémi Verschelde
bd10c70458
Merge pull request #36461 from akien-mga/c++17-fallthrough-attribute
Replace FALLTHROUGH macro by C++17 [[fallthrough]]
2020-02-23 08:43:18 +01:00
janglee
4bbe87abb7 Added tween support for Rect2
Fixes #34575
2020-02-23 07:21:04 +05:30
Rémi Verschelde
63b0d822d1
Merge pull request #36436 from reduz/new-variant-types
Add support for Vector2i, Rect2i and Vector3i to Variant
2020-02-23 01:38:23 +01:00
Rémi Verschelde
2cf6ac6c50 Replace FALLTHROUGH macro by C++17 [[fallthrough]]
This attribute is now part of the standard we target so we no longer
need compiler-specific hacks.

Also enables -Wimplicit-fallthrough for Clang now that we can properly
support it. It's already on by default for GCC's -Wextra.

Fixes new warnings raised by Clang's -Wimplicit-fallthrough.
2020-02-23 00:52:50 +01:00
Juan Linietsky
6da0eef9e6 Add support for Vector2i, Rect2i and Vector3i to Variant
WARNING: Requires C++17 'guaranteed copy elision' to fix ambiguous
operator problems in Variant.

This was added for this commit (and future C++17 uses) in #36457.
2020-02-22 23:16:44 +01:00
Rémi Verschelde
f2d8c4eb8b
Merge pull request #36465 from YeldhamDev/debugger_top_margin
Remove extra margin in the top of the debugger
2020-02-22 23:16:27 +01:00
Rémi Verschelde
a7891b9d12
Merge pull request #36463 from akien-mga/scons-msvc-c++17-cxxflags
SCons: Ensure that MSVC gets /std:c++17 in CCFLAGS
2020-02-22 23:13:40 +01:00
Rémi Verschelde
5ee50db3f3
Merge pull request #36464 from akien-mga/travis-macos-xcode-11.3-c++17
Travis: Use Xcode 11.3 for macOS/iOS
2020-02-22 23:13:18 +01:00
Michael Alexsander
5c5a2b7472 Remove extra margin in the top of the debugger 2020-02-22 18:41:22 -03:00
Rémi Verschelde
a92e2eb317 Travis: Use Xcode 11.3 for macOS/iOS
Xcode 10+ is needed for exhaustive C++17 support (gnu++17).

11.3 is the latest available version on Travis, and we don't have a
specific reason not to use it.

Follow-up to #36457.
2020-02-22 22:31:29 +01:00
Rémi Verschelde
17a81cffb2 SCons: Ensure that MSVC gets /std:c++17 in CCFLAGS
We were running this logic too early, so `env.msvc` was not initialized
yet and MSVC used the same branch as GCC/Clang.
2020-02-22 22:07:08 +01:00
Rémi Verschelde
9a55f1564c
Merge pull request #36457 from akien-mga/c++-standard-gnu++17
SCons: Bump required C++ standard to C++17
2020-02-22 20:38:28 +01:00
Rémi Verschelde
6bb075a53f Travis: Use Ubuntu 18.04 (bionic) as base image
It's now available and allows us to have a better default environment,
with GCC 7.4.0 and Clang 7.

We now need GCC 7+ for C++17 support so it's more efficient to upgrade
the image than to install it on Ubuntu 16.04 (xenial).

Also fixes a couple -Wdeprecated-declarations warnings on macOS now
that we build against macOS 10.12.
2020-02-22 20:00:28 +01:00
Rémi Verschelde
a4801674c5 SCons: Bump required C++ standard to C++17
As per #36436, we now need C++17's guaranteed copy elision feature to
solve ambiguities in Variant.

Core developers discussed the idea to move from C++14 to C++17 as our
minimum required C++ standard, and all agreed. Note that this doesn't
mean that Godot is going to be written in "modern C++", but we'll use
modern features where they make sense to simplify our "C with classes"
codebase. Apart from new code written recently, most of the codebase
still has to be ported to use newer features where relevant.

Proper support for C++17 means that we need recent compiler versions:

 - GCC 7+
 - Clang 6+
 - VS 2017 15.7+

Additionally, C++17's `std::shared_mutex` (conditionally used by
`vk_mem_alloc.h` when C++17 support is enabled) is only available in
macOS 10.12+, so we increase our minimum supported version.
2020-02-22 20:00:21 +01:00
Fabio Alessandrelli
92332eb23d
Merge pull request #36440 from YeldhamDev/debugger_visual_fix
Fix visuals of the new debugger editor
2020-02-22 17:53:27 +01:00
Michael Alexsander
8017a44098 Fix visuals of the new debugger editor 2020-02-22 12:39:44 -03:00
Rémi Verschelde
da3a504216
Merge pull request #36454 from akien-mga/vulkan-workaround-32-bit-lib-error
Vulkan: Work around false positive on 64-bit Linux w/ 32-bit ICDs
2020-02-22 16:28:48 +01:00
Juan Linietsky
fc3ddef360
Merge pull request #36455 from reduz/giprobe-debug-fix
Correct condition wrongly converted to ERR_FAIL_COND_MSG
2020-02-22 11:37:55 -03:00
Juan Linietsky
54dfdd1cdb Correct condition wrongly converted to ERR_FAIL_COND_MSG
Fixes debugging of giprobes not working, likely other stuff
2020-02-22 11:36:26 -03:00
Rémi Verschelde
66ae9396da
Merge pull request #36452 from akien-mga/doc-bogus-variant-return
doc: Sync classref with apparent Variant return type changes
2020-02-22 15:35:39 +01:00
Rémi Verschelde
e596439497 Vulkan: Work around false positive on 64-bit Linux w/ 32-bit ICDs
In the vast majority of cases, this will be a false positive error
thrown by Vulkan-Loader when a Linux system has Vulkan ICDs for both
32-bit and 64-bit. The error is of the form:
```
ERROR: [Loader Message] Code 0 : /usr/lib/libvulkan_intel.so: wrong ELF class: ELFCLASS32
ERROR: [Loader Message] Code 0 : /usr/lib/libvulkan_radeon.so: wrong ELF class: ELFCLASS32
```

The loader dlopen's the 32-bit ICDs first, raises this error, and then
happily goes on to try and use the 64-bit ICDs.

Upstream report: https://github.com/KhronosGroup/Vulkan-Loader/issues/262

Fixes #36185.
2020-02-22 15:32:20 +01:00
Rémi Verschelde
048f4f8305 doc: Sync classref with apparent Variant return type changes
Part of those seem bogus, methods like Array.back()/front()
should return a Variant and not void.
2020-02-22 15:16:32 +01:00
Rémi Verschelde
fea37cfb52 doc: Sync classref with StringName/Callable changes 2020-02-22 14:59:09 +01:00
Rémi Verschelde
bf7d6de556
Merge pull request #36441 from YeldhamDev/tabs_unused_constants
Remove unused theme constants in Tab(Container)
2020-02-22 08:17:33 +01:00
Sam Green
f12c0d1e98 Stub out Vulkan context for iPhone 2020-02-21 22:01:13 -08:00
Sam Green
06d7316419 Add iphone to vulkan drivers SCsub 2020-02-21 22:00:48 -08:00
Sam Green
2ba72b3a65 Add use_static_mvk option 2020-02-21 22:00:34 -08:00
Sam Green
f40ff128b5 Update detect.py 2020-02-21 21:42:34 -08:00
Sam Green
e03e607230 Resolve iOS and GLES compilation failures 2020-02-21 21:01:34 -08:00
Sam Green
6e25a5448d Import the correct rasterizer based on build settings 2020-02-21 20:48:19 -08:00
Michael Alexsander
e9244c4c23 Remove unused theme constants in Tab(Container) 2020-02-22 01:24:16 -03:00
Dominik 'dreamsComeTrue' Jasiński
6a404a88e4 Fix: auto brace complete for quoted strings
Fixes #36002
2020-02-21 23:01:13 +01:00
clayjohn
b0ff427a2a properly flip sky when rendering reflection probes 2020-02-21 11:42:00 -08:00
SeleckyErik
4a8cb4a818 Fix Variant to Vector<Variant> conversion operator 2020-02-21 19:10:44 +00:00
Yuri Roubinsky
7c1415b99b
Merge pull request #36421 from Chaosus/vs_sort_custom_nods
Refactor node processing in visual shader member dialog
2020-02-21 21:34:03 +03:00