Commit graph

551 commits

Author SHA1 Message Date
Rémi Verschelde
00e686b8c1 libpng: Update to upstream 1.6.38
(cherry picked from commit 0f2dc5c5e1)
2022-09-20 10:26:17 +02:00
Martin Liska
dd0077b963 Fix building VHACD with GCC 13.
Fixes the following error:
thirdparty/vhacd/inc/vhacdICHull.h:46:31: error: 'uint32_t' does not name a type
   46 |     ICHullError Process(const uint32_t nPointsCH, const double minVolume = 0.0);
      |                               ^~~~~~~~

Note the upstream version of the third party library is not affected.

(cherry picked from commit a648d831a9)
2022-09-20 10:26:17 +02:00
Rémi Verschelde
8388ea1d6b
Merge pull request #64839 from akien-mga/3.x-zstd-1.5.2
zstd: Update to upstream version 1.5.2
2022-08-25 00:51:28 +02:00
Rémi Verschelde
bda382684f zstd: Update to upstream version 1.5.2
Release notes:
- https://github.com/facebook/zstd/releases/tag/v1.5.1
- https://github.com/facebook/zstd/releases/tag/v1.5.2

(cherry picked from commit 39ed39900e)
2022-08-24 18:26:14 +02:00
Rémi Verschelde
7dd322f83e libwebp: Sync with upstream 1.2.4
Changes: https://chromium.googlesource.com/webm/libwebp/+/1.2.4/NEWS
(cherry picked from commit e5e34f21fc)
2022-08-24 17:24:23 +02:00
Rémi Verschelde
052257e9b7 nanosvg: Sync with upstream bd16c4e 2022-08-23 16:57:31 +02:00
Rémi Verschelde
6a675563cf certs: Sync with Mozilla bundle as of Jul 19, 2022
7f33e7eb84
(cherry picked from commit d8c8ecb148)
2022-08-05 03:03:56 +02:00
Rémi Verschelde
8dc32619f2 Bullet: Don't include unused BulletInverseDynamics
Follow-up to #63143.
2022-07-19 17:57:28 +02:00
Fabio Alessandrelli
c55e8dd516 Bump mbedtls to 2.18.1 (headers).
(cherry picked from commit baa261cdc8)
2022-07-18 18:55:12 +02:00
Fabio Alessandrelli
df94010dec Bump mbedtls to version 2.18.1, update LICENSE.
Keep applying windows entropy patch.

Update thirdparty/README with correct version information.

(cherry picked from commit 9403a68853)
2022-07-18 15:38:40 +02:00
Rémi Verschelde
fe1e84ec6c Bullet: Remove unused Bullet3 and clew libraries 2022-07-18 13:15:21 +02:00
bruvzg
08579bb971
Fix FreeType crashing in GCC + LTO builds. 2022-06-08 13:48:24 +03:00
Rémi Verschelde
52da1bcdca rvo2: Sync with upstream commit bfc0486
bfc048670a
(cherry picked from commit 86cdf1f2cf)
2022-05-19 15:25:43 +02:00
Rémi Verschelde
e317b7efbb rvo2: Re-sync with upstream, properly document Godot-specific changes
Still tracking the `v1.0.1` tag for now, just reverting all the unnecessary
style changes that created a diff with upstream.

(cherry picked from commit 6c78170d8c)
2022-05-19 15:25:43 +02:00
Rémi Verschelde
f33899d5bf pcre2: Fix support for macOS < 11.0 by making JIT conditional at runtime
(cherry picked from commit 24a06a6d4a)
2022-05-18 11:57:15 +02:00
Rémi Verschelde
393c09cae8 xatlas: Sync with upstream 16ace528a
Just cleaning up unused but set variables.

16ace528ac
(cherry picked from commit 10c99d7b41)
2022-05-17 23:36:21 +02:00
Rémi Verschelde
6be616bd16 Recast: Update to upstream commit 5a870d4 (2022)
(cherry picked from commit 4635f24322)
2022-05-17 23:35:49 +02:00
Rémi Verschelde
723a65dd75 certs: Sync with Mozilla bundle as of Mar 31, 2022
39c6ac0550
(cherry picked from commit be6db612a1)
2022-05-17 23:29:05 +02:00
Rémi Verschelde
a5ee5011ca pcre2: Update to upstream version 10.40
Changelog: https://github.com/PCRE2Project/pcre2/blob/pcre2-10.40/ChangeLog
(cherry picked from commit fd6eb2c2d2)
2022-05-17 23:28:45 +02:00
Rémi Verschelde
0f3aff2d77
Merge pull request #61131 from akien-mga/3.x-freetype-2.12.1 2022-05-17 23:15:21 +02:00
bruvzg
98c7db745b FreeType: Update to version 2.12.1
(cherry picked from commit 93fba7ead3)
2022-05-17 22:28:10 +02:00
Rémi Verschelde
8e12c755d1 nanosvg: Sync with upstream 4c8f013 2022-05-17 22:17:54 +02:00
Rémi Verschelde
7515b47e8e bullet: Sync with upstream 3.24
Remove upstreamed patch.
2022-05-17 11:45:52 +02:00
Rémi Verschelde
5e693b6d84 Fix warnings found by Emscripten 3.1.10
Fix `-Wunused-but-set-variable`, `-Wunqualified-std-cast-call`, and
`-Wliteral-range` warnings.

(cherry picked from commit d8935b27a9)
2022-05-16 16:38:26 +02:00
Haoyu Qiu
153dc4d57e Backport the new Tween system as SceneTreeTween
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
2022-04-29 20:01:12 +08:00
Rémi Verschelde
e1beca0232 zlib/minizip: Update to version 1.2.12
Security update, fixes CVE-2018-25032 in zlib.

Preliminary assessment doesn't show Godot as affected since we don't
seem to call `deflate` with the problematic parameters, but the extent
of the vulnerability is not fully clear upstream yet.

(cherry picked from commit 420d0d50bc)
2022-04-13 11:43:49 +02:00
bruvzg
fd2fba7c2c
Add binary MO translation file support. Add brotli decoder and WOFF2 support.
Use smaller .mo files instead of .po, if gettext is available.
Convert editor fonts to .woff2 format.
2022-03-25 19:51:39 +02:00
jfons
e66003b09a Upgrade stb_rect_pack to 1.01
Enables large rectangle support by default.

(cherry picked from commit 0395b5e414)
2022-03-02 11:00:26 +01:00
Rémi Verschelde
72e338e8e7
libwebp: Sync with upstream 1.2.2
Changes: https://chromium.googlesource.com/webm/libwebp/+/1.2.2/NEWS
(cherry picked from commit 339dcd80ae)
2022-02-11 09:50:57 +01:00
Rémi Verschelde
4f1e33b556
freetype: Update to upstream version 2.11.1
(cherry picked from commit f615926d3c)
2022-01-19 14:03:38 +01:00
Fabio Alessandrelli
d76a26e086
Bump mbedTLS version to 2.28.0 (new LTS).
Keep applying the windows entropy patch (UWP support).
Remove no longer needed padlock patch.
Update thirdparty README to reflect changes, and new source inclusion
criteria.

(cherry picked from commit e375cbd094)
2022-01-19 14:03:03 +01:00
Rémi Verschelde
a627cdafc5
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-13 15:54:13 +01:00
Rémi Verschelde
305d7bd49e
bullet: Sync with upstream 3.21
Remove upstreamed patches. Add a new patch to fix a new warning.
2022-01-06 23:51:45 +01:00
Jake Young
09bc9eb101
Backport NavigationServer with RVO2 to 3.x
Change the entire navigation system.
Remove editor prefix from nav mesh generator class. It is now used for baking
at runtime as well.
Navigation supports obstacle avoidance now with the RVO2 library.
Nav system will also automatically link all nav meshes together to form one
overall complete nav map.
2022-01-05 16:00:56 +01:00
Fabio Alessandrelli
a40b88dc2c
Bump mbedtls to 2.16.12
Remove upstreamed patches.
Re-apply padlock and uwp patches.

NOTE: We could replace our padloack patch with mbedtls 3452.
(cherry picked from commit 36d316876b)
2021-12-21 11:20:53 +01:00
Aaron Franke
7bf7bd70ac
[3.x] Misc build system fixes 2021-12-10 12:15:16 -06:00
Vincent
8a4c583538
Fix crash when loading an invalid mp3 file
(cherry picked from commit 2d0068d1cb)
2021-12-01 16:47:30 +01:00
Gergely Kis
0ba1d8d8bd
Fix debug build for iphone
printf() does not have a version that accepts std::string
as format string parameter.

(cherry picked from commit a1a3e79ea5)
2021-11-25 22:24:31 +01:00
Rémi Verschelde
5c6e39b2a6
wslay: Sync with upstream 45d22583b
45d22583b4

Mostly style changes, a couple new methods and fixes.
Tweak file structure a bit.

(cherry picked from commit a706ef3272)
2021-11-20 11:50:59 +01:00
Rémi Verschelde
38c5ba85ab
libvorbis: Sync with upstream 1.3.7
Fixes various bugs, including several ones with security relevance.

Changes: https://github.com/xiph/vorbis/releases/tag/v1.3.7
(cherry picked from commit 28ad2e8c72)
2021-11-20 11:50:45 +01:00
Rémi Verschelde
724c207005
libwebp: Sync with upstream 1.2.1
Changes: https://chromium.googlesource.com/webm/libwebp/+/1.2.1/NEWS
(cherry picked from commit 41ce417847)
2021-11-20 11:50:34 +01:00
Rémi Verschelde
d085385e60
zstd: Update to upstream version 1.5.0
Release notes: https://github.com/facebook/zstd/releases/tag/v1.5.0

(cherry picked from commit 5bea1370f0)
2021-11-20 11:50:17 +01:00
Rémi Verschelde
322ff1f646
xatlas: Sync with upstream ec707faea
ec707faeac
(cherry picked from commit 0b84b26b2e)
2021-11-20 11:49:46 +01:00
Rémi Verschelde
86ab8b2613
pcre2: Update to upstream version 10.39
Changelog: https://github.com/PhilipHazel/pcre2/blob/pcre2-10.39/ChangeLog
(cherry picked from commit 914b7f825d)
2021-11-20 11:49:36 +01:00
Rémi Verschelde
6b04e3e3f0
libogg: Update to upstream 1.3.5
Mostly a cosmetic update, we were already on a commit close to what
ended up being tagged as 1.3.5. Adds an extra buffer overflow fix.

(cherry picked from commit 77efd406bf)
2021-11-20 11:49:25 +01:00
Rémi Verschelde
31dbc59c39
tinyexr: Sync with upstream 1.0.1
Removes miniz as a bundled dependency, relies on our own zlib instead.

Includes a couple commits ahead of `v1.0.1` tag to fix MinGW builds.

(cherry picked from commit 46d3effa99)
2021-11-20 11:48:49 +01:00
Rémi Verschelde
ee82085925
certs: Sync with Mozilla bundle as of Nov 1, 2021
edd798d35a
(cherry picked from commit 07f8996b1c)
2021-11-20 11:48:39 +01:00
Pedro J. Estébanez
4c710780d4 Implement async shader compilation plus caching for GL ES 3
Async. compilation via ubershader is currently available in the scene and particles shaders only.

Bonus:
- Use `#if defined()` syntax for not true conditionals, so they don't unnecessarily take a bit in the version flagset.
- Remove unused `ENABLE_CLIP_ALPHA` from scene shader.
- Remove unused `PARTICLES_COPY` from the particles shader.
- Remove unused uniform related code.
- Shader language/compiler: use ordered hash maps for deterministic code generation (needed for caching).
2021-11-09 12:19:12 +01:00
Rémi Verschelde
72427737ae
mbedtls: Backport PR 4819 to fix certs parsing speed
Fixes engine startup time regression described here:
https://github.com/godotengine/godot/issues/43351#issuecomment-847466783

(cherry picked from commit 52a535c030)
2021-10-25 21:16:04 +02:00
Rémi Verschelde
5bcba2b825
mbedtls: Backport "Fix x86_64 assembly for bignum multiplication"
Backports PR https://github.com/ARMmbed/mbedtls/pull/4948 to fix a regression
with our macOS builds using Clang 12.

Fixes #53297.

(cherry picked from commit 4cf3056ca6)
2021-10-15 12:51:42 +02:00
Rémi Verschelde
cbe0cff53d
bullet: Fix UWP build by disabling TaskScheduler dynamic loading
Cf. https://github.com/bulletphysics/bullet3/pull/3991
2021-10-06 07:44:30 +02:00
Rémi Verschelde
b7901c773c
bullet: Sync with upstream 3.17
Stop include Bullet headers using `-isystem` for GCC/Clang as it misleads
SCons into not properly rebuilding all files when headers change.

This means we also need to make sure Bullet builds without warning, and
current version fares fairly well, there were just a couple to fix (patch
included).

Increase minimum version for distro packages to 2.90 (this was never released
as the "next" version after 2.89 was 3.05... but that covers it too).
2021-09-29 16:30:34 +02:00
kobewi
e0f46c2b38
Add a special case for 0-time interpolations
(cherry picked from commit 5c1195e456)
2021-09-27 18:06:08 +02:00
Rémi Verschelde
4f734c15a4
nanosvg: Sync with upstream ccdb199
Includes fixes for a memory corruption bug (CVE-2019-1000032)
and possible division by zero.

(cherry picked from commit 05b28b66ea)
2021-09-27 17:59:04 +02:00
Max Hilbrunner
8190746066
Update bundled Mozilla X.509 CA root certificates
Updated to latest upstream changes (2021-07-05 21:36:52 GMT), taken from 8b263a18fc

(cherry picked from commit d9005912c1)
2021-08-12 16:42:17 +02:00
Rémi Verschelde
96f5ffdcc1
mbedtls: Update to upstream version 2.16.11
(cherry picked from commit cd7b25588b)
2021-07-20 13:05:28 +02:00
jfons
a69cc9f13d
Upgrade Embree to the latest official release.
Since Embree v3.13.0 supports AARCH64, switch back to the
official repo instead of using Embree-aarch64.

`thirdparty/embree/patches/godot-changes.patch` should now contain
an accurate diff of the changes done to the library.

(cherry picked from commit 767e374dce)
2021-05-22 15:14:07 +02:00
Haoyu Qiu
cf47129f9a
Fix STL to Godot type convertion of polypartition
(cherry picked from commit d16bef8b55)
2021-05-21 13:41:28 +02:00
Rémi Verschelde
140350d767
Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2021-05-05 15:02:01 +02:00
Rémi Verschelde
b8d198eeed
Merge pull request #48455 from JFonS/3.x_embree_aarch64
[3.x] Switch to embree-aarch64
2021-05-05 15:01:18 +02:00
JFonS
73e2ccd603 Switch to embree-aarch64 2021-05-04 18:59:00 +02:00
Rémi Verschelde
a828398655
Style: Replaces uses of 0/NULL by nullptr (C++11)
Using clang-tidy's `modernize-use-nullptr`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
2021-05-04 16:30:23 +02:00
Rémi Verschelde
70ae90e0e8
Core: Drop custom copymem/zeromem defines
We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f6639.

There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.

Backport of #48239.
2021-04-29 12:34:11 +02:00
Fabio Alessandrelli
6daa1643b0
[Net] Fix miniupnpc UWP build.
The patch has already been upstreamed, and custom patching won't be
needed during next version update.

(cherry picked from commit 8d5df826cb)
2021-03-24 13:13:59 +01:00
Rémi Verschelde
33628c482f
miniupnpc: Update to version 2.2.2
(cherry picked from commit 69486b1059)
2021-03-17 15:16:59 +01:00
Fabio Alessandrelli
50f0f51604 [Net] Fix miniupnpc when no interface is specified
This is a tricky one, it used to work, but it was wrong, because in such
a scenario instead of passing NULL as required by the API, it would pass
a buffer containing the `\0` terminator.
This stopped working on a specific miniupnpc version, when they fixed
some network endianess issue on Windows, to which we made a workaround,
which in turn would probably result in failures when the interface is
specified.

This commit address the issue properly, by checking the specified
interface string size, and correctly passing NULL instead of the empty
string when necessary.

Also reverts the commit that introduced the bogus workaround:
388adac947

One of those PR when the explanation is much longer then code changes
:).
2021-03-15 18:12:05 +01:00
Fabio Alessandrelli
2f1a8ae751
Bump mbedtls to version 2.16.10.
(cherry picked from commit 18bc1f2a8f)
2021-03-13 21:56:31 +01:00
Pun1sher
1958a5b35e 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

(cherry picked from commit ec6a4c92fe)
2021-02-26 11:27:45 +01:00
Rémi Verschelde
9f2c24e8ce
Cleanup: Remove executable bit from files which don't need it
Drop unused xpmfix.sh script.

(cherry picked from commit 76c6007aa6)
2021-01-26 17:00:15 +01:00
Pedro J. Estébanez
0f4c44c9fb Fix freeze-crash in lightmapper under MinGW-GCC 2021-01-23 05:53:10 +01:00
Pedro J. Estébanez
3c4b607faf Fix freeze-crash in lightmapper under MinGW-GCC 2021-01-21 12:09:37 +01:00
Lyuma
a0c8f45095 Rename patches folder 2021-01-18 06:52:58 -08:00
Lyuma
2c2f70c444 embree: cross compile fixes.
Fix typos in #if; add missing _MSC_VER; avoid warning in random generator.
2021-01-18 06:20:24 -08:00
JFonS
b1ca82c43a CPU lightmapper fixes.
- Fix Embree runtime when using MinGW (patch by @RandomShaper).
- Fix baking of lightmaps on GridMaps.
- Fix some GLSL errors.
- Fix overflow in the number of shader variants (GLES2).
2021-01-15 12:32:54 +01:00
JFonS
7d7d7ef16d CPU lightmapper formatting and minor fixes. 2021-01-14 18:08:33 +01:00
JFonS
112b416056 Implement new CPU lightmapper
Completely re-write the lightmap generation code:
- Follow the general lightmapper code structure from 4.0.
- Use proper path tracing to compute the global illumination.
- Use atlassing to merge all lightmaps into a single texture (done by @RandomShaper)
- Use OpenImageDenoiser to improve the generated lightmaps.
- Take into account alpha transparency in material textures.
- Allow baking environment lighting.
- Add bicubic lightmap filtering.

There is some minor compatibility breakage in some properties and methods
in BakedLightmap, but lightmaps generated in previous engine versions
should work fine out of the box.

The scene importer has been changed to generate `.unwrap_cache` files
next to the imported scene files. These files *SHOULD* be added to any
version control system as they guarantee there won't be differences when
re-importing the scene from other OSes or engine versions.

This work started as a Google Summer of Code project; Was later funded by IMVU for a good amount of progress;
Was then finished and polished by me on my free time.

Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2021-01-14 18:05:56 +01:00
JFonS
a80e4a6158 Add Embree thirdparty library 2021-01-14 18:02:07 +01:00
JFonS
ad8abef74c Add OpenImageDenoise thirdparty library 2021-01-14 18:02:07 +01:00
Rémi Verschelde
52e674ded1
pcre2: Update to upstream version 10.36
Changelog: https://vcs.pcre.org/pcre2/code/tags/pcre2-10.36/ChangeLog?view=markup
(cherry picked from commit 951ad29c0f)
2021-01-13 16:17:08 +01:00
Rémi Verschelde
08efd1c908
COPYRIGHT: Update with recent additions, cleanup
Also include public domain assets in `COPYRIGHT.txt` with Unlicence text or
dual-licensing scheme.

And document commit hashes for most thirdparty code in `thirdparty/README.md`
for clarity, and in case there's no tag matching the included version numbers.

(cherry picked from commit c6802a65c6)
2021-01-13 16:17:08 +01:00
Rémi Verschelde
d044c57069
enet: Sync with upstream 1.3.17
(cherry picked from commit d8495d41ca)
2021-01-13 16:17:08 +01:00
Rémi Verschelde
4b59e1e736
zstd: Update to upstream version 1.4.8
(cherry picked from commit 3645c9c80c)
2021-01-13 16:17:08 +01:00
Rémi Verschelde
49646383f1
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 🎆

(cherry picked from commit b5334d14f7)
2021-01-13 16:17:06 +01:00
Rémi Verschelde
387390d638
mbedtls: Update to upstream version 2.16.9
(cherry picked from commit 2872006039)
2020-12-29 16:02:01 +01:00
Fabio Alessandrelli
ab4423e7ad
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.

(cherry picked from commit 3936da7ab4)
2020-12-10 13:08:05 +01:00
Sacha Waked
d5ea412848
Updated open-simplex to have const noise functions
"open-simplex-noise-in-c" now updated to master and "opensimplex" module refactored accordingly

(cherry picked from commit 7e2b88a7eb)
2020-12-09 11:22:04 +01:00
Vincent
75d38765a8 mp3 import and playback support backport 2020-12-07 15:32:09 +01:00
Adam Brown
df047e56fe
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.

(cherry picked from commit 23c754360a)
2020-12-02 16:03:26 +01:00
Rémi Verschelde
6553cd368b
nanosvg: Sync with upstream 3e403ec
Includes some loop condition fixes after fuzzing.

The previously identified regression (#43641) is now fixed upstream.

(cherry picked from commit 1bb6491992)
2020-11-26 09:38:46 +01:00
Rémi Verschelde
08028fa1ee
glad: Sync with upstream 0.1.34 2020-11-17 16:42:42 +01:00
bruvzg
da289046b5
Update "open-simplex-noise-in-c" to fix undefined signed overflow.
(cherry picked from commit 70bdf0ecf2)
2020-11-11 15:44:18 +01:00
Rémi Verschelde
4f908fb671
Merge pull request #42941 from RevoluPowered/fbx-3-2-2020
[3.2] FBX importer rewrite
2020-10-30 17:34:28 +01:00
Gordon MacPherson
8197a611fa Rewrite FBX Importer to convert directly to Godot scene format
Co-authored-by: Gordon MacPherson <gordon@gordonite.tech>
Co-authored-by: Andrea Catania <info@andreacatania.com>
Co-authored-by: K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>

This is a complete rewrite of the importer. It will give more deterministic behaviour and has been sponsored by IMVU inc, over 1 year has gone into the development of this importer to remove the burden of the FBX SDK.
This was my project for 1 entire year and I really enjoyed the opportunity to add to Godot.

Along the road of implementing fixes we implemented fbx pivots, animations and inheritance type handling, which in most cases works properly.
We have implemented animation and mesh skinning too this should work out of the box, if there are issues let us know.
It's designed so that you can expand this with ease, and fix bugs easily too.
It can import from Autodesk Maya and import into Godot, with pivots.
There are bits we could polish but for now this is good enough.

Additional fixes made before upstreaming:
- fixed memory leaks
- ensure consistent ordering on mac linux and windows for fbx tree. (very important for material import to be deterministic)
- disabled incorrect warnings for fbx_material
- added compatibility code for /RootNode/ so compat is not broken
- Optimise FBX - directly import triangles
- remove debug messages
- add messages for mesh id, mesh re-import is sometimes slow and we need to know what mesh is being worked on
- Document no longer uses unordered maps
- Removed some usages of &GetRequiredToken replaced with safe *GetRequiredToken() function
- Added parser debugging
- Added ERR_FAIL_CONDS for unsupported mesh formats (we can add these later super easy to do now)
- Add memory debugging for the Tokens and the TokenParser to make it safe
- Add memory initialisation to mesh.cpp surface_tool.h and mesh.h
- Initialise boolean flags properly
- Refactored to correct naming for the fbx_mesh_data.h so you know what data you are working on
- Disabled corruption caused by the FIXME:
- Fixed document reading indexes and index_to_direct vs indexes mode
- Fixed UV1 and UV2 coordinates
- Fixed importer failing to import version 7700 files
- Replaced memory handling in the FBX Document with pointers, before it was dereferencing invalid memory.
- Fixed typed properties
- Improved Document API
- Fixed bug with ProcessDOMConnection() not working with the bool flag set to true.
- Fixed FBX skinning not deforming for more than one single mesh
- Fixed FBX skeleton mapping and skin mapping not being applied properly (now retrieved from document skin list)
- Fixed set_bone_pose being used in final version()
- Fixed material properties exceeding 1.0.
- FBX Document parser revamped to use safe memory practices, and with graceful error messages.
- ScopePtr, TokenPtr and various internal types have been fleshed out to use proper typedefs across the codebase.
- Fixed memory leaks caused by token cleanup failing (now explicit cleanup step, no shared_ptr, etc)
- Fixed bug with PropertyTable not reading all properties and not cleaning up properly.
- Fixed smoothing groups not working
- Fixed normal duplications
- Fixed duplication check for pre-existing coordinates.
- Fixed performance of vertex lookup in large meshes being slow, using lookup table separate to the data for indexing, this reduces import time from 10 minutes of bistro down to 30 seconds.
- Fixed includes requiring absolute path in headers and cpp files using CPPPath.

Bugs/Features wish list:
- locator bones
- quat anim key interpolation (most fbx maya files have euler rotations from blender and maya, nobody uses this)
- some rigs skins scale up when SSC enabled inconsistently per bone
- some skins can disappear entirely
- material mapping needs expanded, but this will be done for 4.0 as it requires rewrite.

Workarounds for issues found until we patch them:
- mesh -> clear skin can resolve most of the bugs above.
- locators can be worked around by removing them before exporting your rig.
- some material properties wont always import, this is okay to override in the material properties.

**If you are having issues or need support fear not!**
Please provide minimal rigs which can reproduce issues as we can't spend a lot of time investigating each rig. We need a small example which breaks and we can then sort the problem. In some cases this is not possible so its okay to privately send models to us via IRC or a ticket and we can provide an email address, we won't reveal or disclose privately sent rig files to any companies, or to companies I work for, they will not be shared, only tested and bugs will be drawn up from the conclusions. Also include identifying information about what you did and how it didn't work. Please file each file separately in a bug report, unless the problem is the same.
This was sponsored by IMVU, and a special thanks to everyone who supported this project.

Signed-off-by: Gordon MacPherson <gordon@gordonite.tech>
2020-10-30 15:59:19 +00:00
volzhs
4e720c064e
Update freetype to 2.10.4
(cherry picked from commit 42959d54ff)
2020-10-28 14:05:40 +01:00
Rémi Verschelde
64b0f5db40
zstd: Update to upstream version 1.4.5
(cherry picked from commit 914591c9ae)
2020-09-24 14:43:11 +02:00
Rémi Verschelde
8a97e65297
tinyexr: Sync with upstream 1.0.0
(cherry picked from commit fa35f53dd2)
2020-09-24 14:43:11 +02:00
Fabio Alessandrelli
48de626949
Update mbedTLS to version 2.16.8 (+ patch).
(cherry picked from commit a905764e3d)
2020-09-08 08:56:33 +02:00
Rémi Verschelde
f922452e90 stb_vorbis: Update to upstream version 1.20
Upstreams our crash fixes from #38422 and #40174.

(cherry picked from commit 8dffca4196)
2020-07-24 10:31:57 +02:00
Fabio Alessandrelli
67313c681d Reorganize ENet pactches.
(cherry picked from commit 32fbe37ab4)
2020-07-15 12:48:18 +02:00
Fabio Alessandrelli
18eddfc98d Funnel refuse_new_connections to Godot ENet.
(cherry picked from commit 7ec5c917d1)
2020-07-15 12:48:18 +02:00