Commit Graph

26785 Commits

Author SHA1 Message Date
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
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
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
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
Rémi Verschelde
a77c862b18
Merge pull request #36400 from reduz/variant-string-name
Added StringName as a variant type.
2020-02-21 16:48:29 +01:00
Yuri Roubinsky
b78b37ed3f Refactor node processing in visual shader member dialog 2020-02-21 18:34:31 +03:00
Rémi Verschelde
0447d6fc8e
Merge pull request #36393 from reduz/callable-method-pointer
New callable_mp macro, for signals to call method pointers directly.
2020-02-21 14:53:24 +01:00
Juan Linietsky
3c0059650d Added StringName as a variant type.
Also changed all relevant properties defined manually to StringName.
2020-02-21 14:25:29 +01:00
Rémi Verschelde
7ac0973e9a
Merge pull request #36415 from reduz/skeleton-skin-named
Add support for named binds in Skin.
2020-02-21 14:12:19 +01:00
Juan Linietsky
04bb6a708a Created the callable_mp macro, for signals to call method pointers directly. 2020-02-21 13:46:45 +01:00
Juan Linietsky
9a34f39d32 Add support for named binds in Skin.
Helps better reutilization of skeletons from Maya exported files.
2020-02-21 09:40:29 -03:00
Rémi Verschelde
a24aafcb92
Merge pull request #36244 from Faless/debugger/big_refactor_squash
Huge Debugger/EditorDebugger refactor.
2020-02-21 11:56:40 +01:00
Fabio Alessandrelli
cbc450c0e5 Huge Debugger/EditorDebugger refactor. 2020-02-21 11:12:03 +01:00
Rémi Verschelde
8b058d4b9a
Merge pull request #36413 from akien-mga/travis-homebrew-update
Travis: Force updating homebrew on macOS
2020-02-21 09:42:42 +01:00
Rémi Verschelde
1b01896e90 Travis: Force updating homebrew on macOS
Temporary workaround for https://travis-ci.community/t/macos-build-fails-because-of-homebrew-bundle-unknown-command/7296
2020-02-21 09:27:18 +01:00
Rémi Verschelde
851cb42963
Merge pull request #35864 from ofrank123/master
Switched the language server from websockets to TCP
2020-02-20 15:29:33 +01:00
Rémi Verschelde
f5bb6d6a7c
Merge pull request #36380 from akien-mga/scons-std-c11-c++14
SCons: Explicitly define our C (C11) and C++ (C++14) standards
2020-02-20 14:04:25 +01:00
of9
24b27043fe Migrating language server from Websockets to raw TCP 2020-02-20 11:21:43 +00:00
Rémi Verschelde
342f127362 SCons: Explicitly define our C (C11) and C++ (C++14) standards
On GCC and Clang, we use C11 and C++14 with GNU extensions (`std=gnu11`
and `std=gnu++14`). Those are the defaults for current GCC and Clang,
and also match the feature sets we want to use in Godot.

On MSVC, we require C++14 support explicitly with `/std:c++14`, and
make it strict with the use of `/permissive-` (so features of C++17 or
later can't be used).

Moves the definition before querying environment flags and platform
config so that it can be overridden when necessary.
2020-02-20 11:37:52 +01:00
Rémi Verschelde
bd61281a5f
Merge pull request #36368 from reduz/variant-rework
Reworked signal system, added support for Callable and Signal
2020-02-20 11:30:56 +01:00
Juan Linietsky
69c95f4b4c Reworked signal connection system, added support for Callable and Signal objects and made them default. 2020-02-20 08:24:50 +01:00
Rémi Verschelde
1a4be2cd8f
Merge pull request #36371 from Calinou/doc-improve-panoramasky
Improve the PanoramaSky class documentation
2020-02-20 07:56:38 +01:00
Rémi Verschelde
353e2071d0
Merge pull request #36340 from nathanwfranke/fix-signal-errors
Fix two signal errors, remove unused break_request signals in profilers
2020-02-20 07:13:54 +01:00
Rémi Verschelde
3afc47bbd6
Merge pull request #36347 from Janglee123/persistence-view-mode-for-new-scene
Persisting view mode for new scene
2020-02-20 07:12:12 +01:00
Rémi Verschelde
f8c87c0ac4
Merge pull request #36375 from Xrayez/pimpmaps-typos
Fix MIMPAMPS typos in constants throughout the engine
2020-02-20 07:00:25 +01:00
Rémi Verschelde
9f9447ea9f
Merge pull request #36376 from timothyqiu/fix-load-image-crash
Fixes crash when loading StreamTexture from file
2020-02-20 06:49:11 +01:00
Haoyu Qiu
a7578459c2 Fixes crash when loading StreamTexture from file 2020-02-20 09:45:00 +08:00
Andrii Doroshenko (Xrayez)
fa766265a7 Fix MIMPAMPS typos in constants throughout the engine 2020-02-20 01:31:43 +02:00