Commit Graph

550 Commits

Author SHA1 Message Date
Rémi Verschelde
b5334d14f7
Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
Rémi Verschelde
6010c49424
Merge pull request #44740 from fire/mesh-opt-collapse
Meshoptimizer Update: Restrict edge collapses to avoid triangle flipping
2020-12-30 16:40:44 +01:00
K. S. Ernest (iFire) Lee
8b69f9c18a Meshoptimizer update library 2020-12-30 06:30:25 -08:00
Rémi Verschelde
e495c2cb21
bullet: Sync with upstream 3.08 2020-12-30 13:39:14 +01:00
Marcel Admiraal
5b937d493f Rename empty() to is_empty() 2020-12-28 10:39:56 +00:00
bruvzg
86006ce476
HarfBuzz: Update to upstream version 2.7.4 2020-12-27 10:38:37 +02:00
Rémi Verschelde
727faf9b48
Merge pull request #44540 from jacobcoughenour/vulkan-sdk-1.2.126.0
Vulkan: loader, headers, and glslang updated to sdk-1.2.162.0
2020-12-23 01:13:18 +01:00
Gordon MacPherson
5b5fdb0adf remove assimp pending fbx upgrade 2020-12-22 21:31:06 +00:00
jacobcoughenour
66d429576c Vulkan: loader, headers, and glslang updated to sdk-1.2.162.0
Updated glslang and Vulkan headers/loader following the instructions found in thirdparty/README.

glslang was updated to the 'known good' matching Vulkan SDK version 1.2.162.0.  Vulkan headers and loader were updated to the commit tagged with sdk-1.2.162.0.

'vk_mem_alloc.h' and 'vk_mem_alloc.c' are unchanged since there hasn't been a new tagged release since 2.3.0.

Here's the Vulkan release notes for this update:
https://vulkan.lunarg.com/doc/sdk/1.2.162.0/windows/release_notes.html

Reverted and removed the unnecessary fix-mingw-snprintf patch for glslang as well as the mention of it in thirdparty/README.md.
2020-12-21 20:28:49 -05:00
Rémi Verschelde
0923494c78
Merge pull request #44507 from bruvzg/icu_update_68_2
ICU: Update to upstream release 68.2
2020-12-21 12:36:47 +01:00
Rémi Verschelde
229fb888a3
Merge pull request #44505 from akien-mga/mbedtls-2.16.9
mbedtls: Update to upstream version 2.16.9
2020-12-19 13:11:02 +01:00
reduz
7bf90c7888 Improved shadow rendering efficiency
-Do not bind attributes that are not needed
-Improve a bit more how meshoptimizer interacts with Godot
2020-12-18 19:47:32 -03:00
bruvzg
bf5ca85d61
ICU: Update to upstream release 68.2 2020-12-18 23:03:46 +02:00
Rémi Verschelde
2872006039
mbedtls: Update to upstream version 2.16.9 2020-12-18 21:43:21 +01:00
reduz
d2302f53d6 Implement automatic LOD (Level of Detail)
-Happens on import by default for all models
-Just works (tm)
-Biasing can be later adjusted per node or per viewport (as well as globally)
-Disabled AABB.get_support test because its broken
2020-12-18 15:48:03 +01:00
Rémi Verschelde
3cbf8bde84
bullet: Sync with upstream 3.07 2020-12-18 13:41:11 +01:00
Rémi Verschelde
c7b53c03ae
SCons: Add explicit dependencies on thirdparty code in cloned env
Since we clone the environments to build thirdparty code, we don't get an
explicit dependency on the build objects produced by that environment.

So when we update thirdparty code, Godot code using it is not necessarily
rebuilt (I think it is for changed headers, but not for changed .c/.cpp files),
which can lead to an invalid compilation output (linking old Godot .o files
with a newer, potentially ABI breaking version of thirdparty code).

This was only seen as really problematic with bullet updates (leading to
crashes when rebuilding Godot after a bullet update without cleaning .o files),
but it's safer to fix it everywhere, even if it's a LOT of hacky boilerplate.
2020-12-18 10:29:34 +01:00
reduz
77a045e902 Rework Mesh handling on scene importing.
-Reworked how meshes are treated by importer by using EditorSceneImporterMesh and EditorSceneImporterMeshNode. Instead of Mesh and MeshInstance, this allows more efficient processing of meshes before they are actually registered in the RenderingServer.
-Integrated MeshOptimizer
-Reworked internals of SurfaceTool to use arrays, making it more performant and easy to run optimizatons on.
2020-12-13 21:29:51 -03:00
Fabio Alessandrelli
3936da7ab4 Fix some easing equations' undefined behaviours.
Spotted via -Wunsequenced.
Easing equations had different behaviours depending on the toolchain
due to its abusing of inline assignments.
2020-12-08 18:21:16 +01:00
Rémi Verschelde
d32878bfa8
Merge pull request #43007 from DeleteSystem32/mp3-support
Add MP3 import and playback support
2020-12-07 11:36:03 +01:00
Sacha Waked
7e2b88a7eb Updated open-simplex to have const noise functions
"open-simplex-noise-in-c" now updated to master and "opensimplex" module refactored accordingly
2020-12-04 11:26:05 +01:00
Vincent
704d6de84c add mp3 import and playback support 2020-12-03 17:51:43 +01:00
Adam Brown
23c754360a xatlas: Sync with upstream 5571fc7
Fixes #44017 by changing the `normalize()` function to check for non-negative rather than non-zero via an epsilon check.
2020-12-02 00:17:45 -08:00
bruvzg
99666de00f
[Complex Text Layouts] Refactor Font class, default themes and controls to use Text Server interface.
Implement interface mirroring.
Add TextLine and TextParagraph classes.
Handle UTF-16 input on macOS and Windows.
2020-11-26 14:25:48 +02:00
bruvzg
b9f441e81e
[Complex Text Layouts] Add third-party TextServer dependencies (ICU, HarfBuzz, Graphite). 2020-11-26 13:55:27 +02:00
bruvzg
493da99269
[Complex Text Layouts] Implement TextServer interface. Implement Fallback TextServer. 2020-11-26 13:55:26 +02:00
Rémi Verschelde
932c6ff3fb
Merge pull request #43719 from akien-mga/nanosvg-3e403ec
nanosvg: Sync with upstream 3e403ec
2020-11-20 18:42:43 +01:00
Andrii Doroshenko (Xrayez)
282ac09eef doctest: Update to 2.4.1
Includes a patch for breakpoint inline assembly for macOS.
2020-11-20 13:50:07 +02:00
Rémi Verschelde
1bb6491992
nanosvg: Sync with upstream 3e403ec
Includes some loop condition fixes after fuzzing.

The previously identified regression (#43641) is now fixed upstream.
2020-11-20 12:01:29 +01:00
Rémi Verschelde
cd6afc05d1
Revert "nanosvg: Sync with upstream cc6c08d"
This reverts commit f697e7879b.

Part of the update introduced a regression:
https://github.com/memononen/nanosvg/issues/188.

We could include a local revert of the problematic commit but let's just do a
full revert to our previous version, and I'll re-update once the regression
is fixed upstream.

Fixes #43641.
2020-11-18 13:23:17 +01:00
Rémi Verschelde
f697e7879b
nanosvg: Sync with upstream cc6c08d
Includes some loop condition fixes after fuzzing.
2020-11-18 08:21:46 +01:00
Pun1sher
ec6a4c92fe
Checking for half_image_size[ x & y ] to be non-negative.
This make sure that (1x1) , (1 x X) and (X , 1) pixel images using sub-sampling will get correct half_image_size i.e NON-NEGATIVE.
fix : https://github.com/godotengine/godot/issues/42363
2020-11-10 21:23:08 +05:30
bruvzg
70bdf0ecf2
Update "open-simplex-noise-in-c" to fix undefined signed overflow. 2020-11-09 14:31:12 +02:00
reduz
127458ed17 Reorganized core/ directory, it was too fatty already
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
2020-11-07 20:17:12 -03:00
Yuri Roubinsky
38fb26794b Exposed randi_range to global funcs + renamed rand_range to randf_range 2020-11-06 17:06:26 +03:00
Rémi Verschelde
f98db723b9
Merge pull request #43184 from Chaosus/fix_randi_range_biased
Fix biased output of randi_range
2020-10-30 15:00:44 +01:00
Yuri Roubinsky
31faa1f226 Fix biased output of randi_range 2020-10-29 15:41:00 +03:00
Rémi Verschelde
6a951267ae
vulkan: Backport build fix for MinGW-w64 8.0.0
Taken from https://github.com/KhronosGroup/Vulkan-Loader/pull/475.

Supersedes and reverts #43119 since the upstream change removes the need for
that custom define.
2020-10-29 12:47:35 +01:00
Rémi Verschelde
9000db505e
vulkan: Re-add Windows patch to fix static library use
Fixes #43105.
2020-10-26 23:30:47 +01:00
Rémi Verschelde
825ab3b784
Merge pull request #42817 from akien-mga/vulkan-sdk-1.2.154.0
vulkan: Sync loader, headers and glslang to sdk-1.2.154.0
2020-10-26 15:15:19 +01:00
volzhs
42959d54ff Update freetype to 2.10.4 2020-10-22 01:47:48 +09:00
Rémi Verschelde
148ad49c93
vulkan: Sync loader, headers and glslang to sdk-1.2.154.0
Actually sdk-1.2.154.1 for Vulkan-Loader.

glslang is updated to bacaef3237c515e40d1a24722be48c0a0b30f75f which is the
known-good version for Vulkan-ValidationLayers 1.2.154.0.

COPYRIGHT.txt was synced with the current version of the glslang LICENSE.txt,
and `glslang/register_types.cpp` now uses the upstream definition for its
default builtin resource instead of hardcoding it.
2020-10-15 12:29:42 +02:00
Rémi Verschelde
914591c9ae
zstd: Update to upstream version 1.4.5 2020-09-18 21:47:12 +02:00
Rémi Verschelde
fa35f53dd2
tinyexr: Sync with upstream 1.0.0 2020-09-09 22:07:24 +02:00
Fabio Alessandrelli
a905764e3d Update mbedTLS to version 2.16.8 (+ patch). 2020-09-07 15:47:38 +02:00
Rémi Verschelde
33b2070d2e Remove obsolete GLES2 backend code
This code currently isn't compiled (and cannot compile).

We plan to re-add OpenGL ES-based renderer(s) in Godot 4.0 alongside Vulkan
(probably ES 3.0, possibly also a low-end ES 2.0), but the code will be quite
different so it's not relevant to keep this old Godot 3.2 code.

The `drivers/gles2` code from the `3.2` branch can be used as a reference for
a potential new implementation.
2020-08-13 10:04:53 +02:00
Sergey Minakov
6e0d4e21ff Thirdparty Vulkan: patch VMA to fix assets
Applies VMA master branch patch that removes incorrect asserts:
issue: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/issues/102
patch: 39aeff7a43
2020-07-25 21:55:05 +02:00
bruvzg
09f301029a
[macOS / ARM64] Remove "-msse2" flag from ARM64 release export template build. Add ARM64 breakpoint inline assembly to "doctest". 2020-07-24 17:54:34 +03:00
RevoluPowered
579342810f t Add unit testing to Godot using DocTest and added to GitHub Actions CI
Implements exit codes into the engine so tests can return their statuses.
Ideally we don't do this, and we use FIXUP logic to 'begin' and 'end' the engine execution for tests specifically.

Since realistically we're initialising the engine here we don't want to do that, since String should not require an engine startup to test a single header.

This lowers the complexity of running the unit tests and even for
physics should be possible to implement such a fix.
2020-07-24 13:05:33 +01:00
Rémi Verschelde
896e7193d8 ENetGodot: Apply clang-format and style guide 2020-07-21 11:48:14 +02:00
Rémi Verschelde
8dffca4196 stb_vorbis: Update to upstream version 1.20
Upstreams our crash fixes from #38422 and #40174.
2020-07-20 11:18:26 +02:00
Fabio Alessandrelli
32fbe37ab4 Reorganize ENet pactches. 2020-07-14 14:10:18 +02:00
Fabio Alessandrelli
7ec5c917d1 Funnel refuse_new_connections to Godot ENet. 2020-07-14 14:10:18 +02:00
Rémi Verschelde
24a01c0d39 stb_vorbis: Add missing error checks in comment reading mallocs
Backported from https://github.com/nothings/stb/pull/989.

Fixes #40164.
2020-07-07 11:47:02 +02:00
Rémi Verschelde
c85a51cf87
Merge pull request #40058 from Faless/wslay/1.1.1
Update to wslay 1.1.1 .
2020-07-02 23:25:17 +02:00
Fabio Alessandrelli
d988b0d1a3 Update to wslay 1.1.1 .
A minor fix, but let's stay in sync.
2020-07-02 16:00:56 +02:00
Fabio Alessandrelli
8ddf9fe4b0 Update to mbedtls 2.16.7 2020-07-02 15:53:50 +02:00
Rémi Verschelde
38a200f1e3 oidn: Fix build for VS 2017
Backporting this upstream patch:
1e42e6db81

Fixes #39186.
2020-06-06 21:27:32 +02:00
jfons
dd79d1ce78 Upgrade OpenImageDenoise to v1.1.0
Upgrade OIDN to 1.1.0, the latest stable version that doesn't need
the ISPC compiler.

Documented the changes made during the removal of TBB and added a patch
file for them.
2020-06-06 19:03:16 +02:00
Rémi Verschelde
59780fd046 xatlas: Sync with upstream 470576d 2020-05-20 13:51:15 +02:00
Rémi Verschelde
9a75425b5b xatlas: Revert style changes made by mistake in #38386 2020-05-20 13:02:04 +02:00
Rémi Verschelde
5ee340ab4c
Merge pull request #38711 from clayjohn/force-float
Force using floats in cubemap coefficient
2020-05-18 16:38:48 +02:00
Pedro J. Estébanez
abe03ff1f0 Remove no longer needed patches to jpgd.cpp 2020-05-18 14:38:28 +02:00
Hugo Locurcio
d935a4348d
Remove HQ2X and the Image.expand_2x_hq2x() method
As of Godot 3.0, HQ2X is no longer used to upscale the editor theme
and icons on hiDPI displays, which limited its effective uses.
HQ2X was also used to upscale the project theme when the "Use Hidpi"
project setting was enabled, but results were often less than ideal.
The new StyleBoxFlat and SVG support also make HQ2X less important
to have as a core feature.

This decreases binary sizes slightly (-150 KB on most platforms,
-212 KB on WebAssembly release).

This partially addresses #12419.
2020-05-16 16:10:50 +02:00
Marcel Admiraal
8efd1ca9f7 Update r128.h to include latest fix for mingw-64 32 bit builds. 2020-05-16 10:30:51 +01:00
Marcel Admiraal
0aac6a2853 Fix #include <windows.h> for case-senstive cross-compilation. 2020-05-15 15:36:44 +01:00
clayjohn
408c4881ae Force using floats in cubemap coefficient 2020-05-12 23:34:01 -07:00
Rémi Verschelde
83b630b8c2 thirdparty: Cleanup after #38386, document provenance and copyright
Also renamed `delaunay.h` to `delaunay_2d.h` to match the class name.
2020-05-11 14:50:06 +02:00
Juan Linietsky
1bea8e1eac New lightmapper
-Added LocalVector (needed it)
-Added stb_rect_pack (It's pretty cool, we could probably use it for other stuff too)
-Fixes and changes all around the place
-Added library for 128 bits fixed point (required for Delaunay3D)
2020-05-10 15:59:09 -03:00
Rémi Verschelde
9c1b20eab6 freetype: Update to upstream version 2.10.2 2020-05-09 13:24:14 +02:00
Rémi Verschelde
3806efbaa7 jpgd: Fix detection of SSE2 support with MSVC
The previous code would always use SSE2 intrinsics, which is not valid
on UWP ARM platforms (and likely not on some x86 platforms either).

The patch has been submitted upstream too:
https://github.com/richgel999/jpeg-compressor/pull/13
2020-05-07 13:11:46 +02:00
Marcel Admiraal
75553c4f90 Fix scale calculation in VHACD Volume::Voxelize(). 2020-05-06 13:14:33 +01:00
Rémi Verschelde
a928a10e83
Merge pull request #38422 from RandomShaper/fix_stb_vorbis
Fix crash in stb_vorbis.c
2020-05-03 09:52:35 +02:00
Pedro J. Estébanez
d259094c3a Fix crash in stb_vorbis.c 2020-05-03 02:22:33 +02:00
Rémi Verschelde
959ffd5979 thirdparty: List release years in README.md
And expand commit hashes to full hashes instead of shortened ones.
2020-05-01 10:50:19 +02:00
Rémi Verschelde
092a1cfb39
Merge pull request #38365 from akien-mga/tinyexr-4dbd05a
tinyexr: Sync with upstream 4dbd05a + enable C++11 threaded loading
2020-04-30 17:58:17 +02:00
Rémi Verschelde
41ac6cfac1
Merge pull request #38364 from akien-mga/recast-57610fa
Recast: Update to upstream commit 57610fa (2019)
2020-04-30 17:57:55 +02:00
Rémi Verschelde
f870118323
Merge pull request #38363 from akien-mga/pcre2-10.34
pcre2: Update to upstream version 10.34
2020-04-30 16:36:39 +02:00
Rémi Verschelde
69f5665ceb
Merge pull request #38361 from akien-mga/stb_vorbis-1.19
stb_vorbis: Update to upstream version 1.19
2020-04-30 16:28:49 +02:00
Rémi Verschelde
8e819ae4c1
Merge pull request #38360 from akien-mga/drop-unused-curl_hostcheck
Drop now unused curl_hostcheck.c
2020-04-30 16:26:24 +02:00
Rémi Verschelde
3a80fce8be tinyexr: Sync with upstream 4dbd05a 2020-04-30 15:24:46 +02:00
Rémi Verschelde
6ba546f98b Recast: Update to upstream commit 57610fa (2019) 2020-04-30 15:16:13 +02:00
Rémi Verschelde
824736d271 pcre2: Update to upstream version 10.34
Changelog: https://vcs.pcre.org/pcre2/code/tags/pcre2-10.34/ChangeLog?view=markup
2020-04-30 15:09:03 +02:00
Rémi Verschelde
8ce7dce511 stb_vorbis: Update to upstream version 1.19
1.19 - 2020-02-05 - warnings
1.18 - 2020-02-02 - fix seek bugs; parse header comments; misc
                    warnings etc.
2020-04-30 14:56:33 +02:00
Rémi Verschelde
05cf8b7c63 Drop now unused curl_hostcheck.c
One less thirdparty library to document \o/
2020-04-30 14:35:25 +02:00
Rémi Verschelde
5167c9186a FastLZ: Update to upstream version 0.5.0
Upstream development restarted after 13 years. Changes:

2020-02-02: Version 0.5.0

    Minor speed improvement on the decompressor.
    Prevent memory violation when decompressing corrupted input.

2020-01-10: Version 0.4.0

    Only code & infrastructure clean-up, no new functionality.
2020-04-30 14:25:00 +02:00
Rémi Verschelde
d29514acce
Merge pull request #38073 from akien-mga/enet-1.3.15
enet: Update to upstream version 1.3.15
2020-04-30 10:33:39 +02:00
Rémi Verschelde
f7e2ff5223
Merge pull request #38253 from nekomatata/bullet-update-2.90
Update to bullet master (2.90)
2020-04-27 16:44:17 +02:00
PouleyKetchoupp
3e7db60d56 Update to bullet master (2.90) 2020-04-27 11:37:47 +02:00
Rémi Verschelde
4d3a18d9ff Windows: Appease capricious MSVC versions with moody headers
Fixes #37799.
Fixes #37986.
2020-04-26 22:27:04 +02:00
Pedro J. Estébanez
1e5a93a416 Fix compilation of jpgd.cpp on MSVC 2017 2020-04-21 21:12:09 +02:00
Rémi Verschelde
ebe38044fd enet: Update to upstream version 1.3.15 2020-04-21 12:27:11 +02:00
Rémi Verschelde
1061cf9f66
Merge pull request #38072 from akien-mga/jpgd-fuzzed
jpgd: Upgrade to upstream 2.00, fuzzed with zzuf and afl
2020-04-21 12:27:06 +02:00
Rémi Verschelde
c842ddcf76 jpgd: Upgrade to upstream 2.00, fuzzed with zzuf and afl 2020-04-21 11:38:29 +02:00
Rémi Verschelde
6b00357d53 mbedtls: Update to upstream version 2.16.6
Fixes https://tls.mbed.org/tech-updates/security-advisories/mbedtls-security-advisory-2020-04
2020-04-21 10:37:14 +02:00
PouleyKetchoupp
802bbe87ad Fix extra warnings in Android build 2020-04-10 11:06:11 +02:00
Rémi Verschelde
ff14d071cc
Merge pull request #37492 from akien-mga/warnings-clang-displayserverwindows
Fix Clang warnings on Windows
2020-04-01 17:12:58 +02:00
Rémi Verschelde
516b3bb88f Fix Clang warnings on Windows
Fixes #37490.
2020-04-01 16:28:20 +02:00
Rémi Verschelde
dbf52c63cc etc2comp: Fix max iterations for RGBA channels
Those checks were *very likely* meant to clamp the max value,
not the min one.

Fixes https://github.com/godotengine/godot/issues/10059#issuecomment-606993001.
2020-04-01 11:23:42 +02:00
Rémi Verschelde
60d486acc8 Fix copyright headers for recently added files 2020-03-28 13:29:29 +01:00