Commit Graph

27198 Commits

Author SHA1 Message Date
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
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
Marcel Admiraal 17f14a851d Fix multiple issues with CSG module.
- Replaces BuildPoly with Build2DFaces, which creates faces as each
  pair of face intersections are processed, instead of trying to create
  them after all the intersections are processed. Ensures that faces are
  merged when possible, and removes degenerate triangles.

- Treats the child as inside the parent when faces are coplanar.

- General clean up of csg.h and csg.cpp.
2020-02-21 16:32:47 +01: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