Commit graph

417 commits

Author SHA1 Message Date
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
Rémi Verschelde 9c68989cf2 stb_vorbis: Add missing error checks in comment reading mallocs
Backported from https://github.com/nothings/stb/pull/989.

Fixes #40164.

(cherry picked from commit 24a01c0d39)
2020-07-08 09:01:57 +02:00
Fabio Alessandrelli 45b1234a82 Update to wslay 1.1.1 .
A minor fix, but let's stay in sync.

(cherry picked from commit d988b0d1a3)
2020-07-03 15:34:30 +02:00
Fabio Alessandrelli 9d25668339 Update to mbedtls 2.16.7
(cherry picked from commit 8ddf9fe4b0)
2020-07-03 15:34:30 +02:00
Rémi Verschelde b4f710c6d8 thirdparty: List release years in README.md
And expand commit hashes to full hashes instead of shortened ones.

(cherry picked from commit 959ffd5979)
2020-07-03 15:34:30 +02:00
Rémi Verschelde 44a516986d
Merge pull request #39084 from madmiraal/backport-37314
[3.2] Better damping implementation for Bullet rigid bodies
2020-07-02 13:26:03 +02:00
Rémi Verschelde 1bd51883c0 xatlas: Sync with upstream 470576d
(cherry picked from commit 59780fd046)
2020-06-04 11:15:06 +02:00
Marcel Admiraal 5d8b0649be Apply old method for linear & angular damping in Bullet, in order to
make it easier to tweak and consistent with Godot Physics.

Include patch applied to Bullet master to enable dampings greater than 1.
2020-05-27 17:53:43 +01:00
Rémi Verschelde 2cf6624965 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.

(cherry picked from commit 5167c9186a)
2020-05-25 11:46:03 +02:00
Pedro J. Estébanez 75f6d2ef32 Remove no longer needed patches to jpgd.cpp
(cherry picked from commit abe03ff1f0)
2020-05-19 10:19:52 +02:00
Rémi Verschelde 938a9c95d0 freetype: Update to upstream version 2.10.2
(cherry picked from commit 9c1b20eab6)
2020-05-11 11:12:39 +02:00
Rémi Verschelde d09036992c 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

(cherry picked from commit 3806efbaa7)
2020-05-07 13:33:39 +02:00
Marcel Admiraal f8b06c8a5c Fix scale calculation in VHACD Volume::Voxelize().
(cherry picked from commit 75553c4f90)
2020-05-06 23:31:18 +02:00
Rémi Verschelde ef715f37d5
Merge pull request #35091 from Faless/dtls/enet
[3.2] DTLS support + optional ENet encryption
2020-05-05 13:40:59 +02:00
Pedro J. Estébanez 97ffd1f8ae Fix crash in stb_vorbis.c
(cherry picked from commit d259094c3a)
2020-05-04 16:10:22 +02:00
Rémi Verschelde e3d913c79a tinyexr: Sync with upstream 4dbd05a
(cherry picked from commit 3a80fce8be)
2020-05-01 11:02:50 +02:00
Rémi Verschelde 8d394f6c01 Recast: Update to upstream commit 57610fa (2019)
(cherry picked from commit 6ba546f98b)
2020-05-01 11:02:29 +02:00
Rémi Verschelde 8730722a74 pcre2: Update to upstream version 10.34
Changelog: https://vcs.pcre.org/pcre2/code/tags/pcre2-10.34/ChangeLog?view=markup
(cherry picked from commit 824736d271)
2020-05-01 11:01:57 +02:00
Rémi Verschelde f43bbc0f4b 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.

(cherry picked from commit 8ce7dce511)
2020-05-01 11:01:47 +02:00
Rémi Verschelde 6893282c41 Drop now unused curl_hostcheck.c
One less thirdparty library to document \o/

(cherry picked from commit 05cf8b7c63)
2020-05-01 11:01:29 +02:00
Rémi Verschelde 0573c8bf62 enet: Update to upstream version 1.3.15
(cherry picked from commit ebe38044fd)
2020-05-01 10:56:58 +02:00
Pedro J. Estébanez 97a787aa71 Fix compilation of jpgd.cpp on MSVC 2017
(cherry picked from commit 1e5a93a416)
2020-04-23 10:36:06 +02:00
Rémi Verschelde c7ad8f539b jpgd: Upgrade to upstream 2.00, fuzzed with zzuf and afl
(cherry picked from commit c842ddcf76)
2020-04-21 14:16:28 +02:00
Rémi Verschelde 4b33388e5c mbedtls: Update to upstream version 2.16.6
Fixes https://tls.mbed.org/tech-updates/security-advisories/mbedtls-security-advisory-2020-04

(cherry picked from commit 6b00357d53)
2020-04-21 14:16:03 +02:00
Rémi Verschelde a8bdcd3c03 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.

(cherry picked from commit dbf52c63cc)
2020-04-16 12:02:34 +02:00
Rémi Verschelde efc0a5a481 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.

(cherry picked from commit 8189abd64a)
2020-03-10 09:31:15 +01:00
Rémi Verschelde 268cbfbad6 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.

(cherry picked from commit 9a727714ee)
2020-03-09 19:49:13 +01:00
Rémi Verschelde 10012f9d49 Revert "assimp: Sync with upstream 0201fc5"
This reverts commit 78b22393a8.

It caused a regression in FBX import leading to crashes.
Fixes #36908.

(cherry picked from commit da1f80c1f2)
2020-03-09 10:43:08 +01:00
CodeforEvolution 543ecb0217 miniupnpc: Sync with upstream master (4436632)
(cherry picked from commit 0c37c4021b)
2020-03-06 23:54:24 +01:00
Rémi Verschelde 10f2ab59c1 assimp: Sync with upstream 0201fc5
(cherry picked from commit 78b22393a8)
2020-03-06 23:54:02 +01:00
Rémi Verschelde 98d0bf7d7a 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.

(cherry picked from commit 9d8a9ea826)
2020-03-06 23:53:23 +01:00
Rémi Verschelde 1e457c8e5c mbedtls: Update to upstream version 2.16.5
Fixes https://tls.mbed.org/tech-updates/security-advisories/mbedtls-security-advisory-2020-02

Drop patch to disable VIA padlock since we no longer use libwebsockets,
so there's no conflict anymore.

(cherry picked from commit e435bed847)
2020-03-06 23:51:26 +01:00
Fabio Alessandrelli aea3c4d93e Custom godot sockets for ENet now support DTLS.
Non-DTLS implementation uses plain NetSocket for performance as before.
2020-02-25 11:35:47 +01:00
Fabio Alessandrelli 388adac947 Fix UPNP on windows after #30205.
The problem could be related to different byte ordering when copying
the interface address over the binding address.

(cherry picked from commit e85330231c)
2020-02-14 16:01:29 +01:00
Rémi Verschelde 724487b3c1 mbedtls: Update to upstream version 2.16.4
Fixes CVE-2019-18222.

`include/mbedtls/version.h` was modified to include the forgotten
version bump to 2.16.4, fixed upstream by ARMmbed/mbedtls#2992.
2020-01-26 18:19:29 +01:00