Commit Graph

539 Commits

Author SHA1 Message Date
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
Fabio Alessandrelli 87d50da9fc Fix basis_universal to not include tool main file.
Avoid build error due to duplicate `main` symbol definition.
2020-03-11 16:06:28 +01:00
Rémi Verschelde 8189abd64a mbedtls: Re-add patch to disable VIA padlock
The comment mentioned a conflict with libwebsockets, but we actually
still get this conflict even now that we don't use libwebsockets.
Not sure what component is clashing but we should basically just keep
this patch.

Follow-up to #36823.
2020-03-10 09:15:00 +01:00
Rémi Verschelde 640169da5b
Merge pull request #36943 from akien-mga/mbedtls-reapply-pr1453
mbedtls: Re-apply upstream PR 1453 after #36823
2020-03-09 19:06:57 +01:00
Rémi Verschelde 9a727714ee mbedtls: Re-apply upstream PR 1453 after #36823
For some weird reason 'git apply' does not error out when it does nothing,
so I missed that I did not apply the patch properly in #36823...

This broke the UWP 32-bit x86 build.
2020-03-09 16:03:27 +01:00
Rémi Verschelde d744d3046e vulkan: Re-add option to build Vulkan-Loader statically
Upstream removed the option in KhronosGroup/Vulkan-Loader#260, which
breaks our current use case.
This commit reverts KhronosGroup/Vulkan-Loader#260 is our vendored
loader.

We may need to re-evaluate how we link the loader, but until then,
reverting this PR fixes Windows support after the upgrade to a recent
SDK version in #36932.
2020-03-09 15:25:54 +01:00
Rémi Verschelde da1f80c1f2 Revert "assimp: Sync with upstream 0201fc5"
This reverts commit 78b22393a8.

It caused a regression in FBX import leading to crashes.
Fixes #36908.
2020-03-09 10:42:18 +01:00
Rémi Verschelde 1231c2ecfc glslang: Sync with upstream 4fc7a33 for Vulkan SDK 1.2.131
Fixes #36888.
2020-03-09 09:36:38 +01:00
Rémi Verschelde 214bc9e5a1 Update Vulkan loader and headers to sdk-1.2.131.2
(Headers are actually sdk-1.2.131.1, they did not get a re-release.)

Also synced VMA 2.3.0 again, fixing unwanted clang-formatting of
thirdparty code.
2020-03-09 09:36:37 +01:00
CodeforEvolution 0c37c4021b miniupnpc: Sync with upstream master (4436632) 2020-03-06 16:29:50 -06:00
Rémi Verschelde 78b22393a8 assimp: Sync with upstream 0201fc5 2020-03-06 14:43:31 +01:00
Rémi Verschelde 9d8a9ea826 assimp: Clean and document buildsystem, prepare for unbundling
- Improve the SCsub to allow unbundling and remove unnecessary code.
- Move files around to match upstream source.
- Re-sync with upstream commit 308db73d0b3c2d1870cd3e465eaa283692a4cf23
  to ensure we don't have local modifications.
- Doesn't actually build against current version 5.0.1 due to the lack
  of the new ArmaturePopulate API that Gordon authored. We'll have to
  wait for a public release with that API (5.1?) to enable unbundling.
2020-03-06 14:37:52 +01:00