Commit Graph

529 Commits

Author SHA1 Message Date
reduz 5786516d4d Implement Running Godot as Movie Writer
* Allows running the game in "movie writer" mode.
* It ensures entirely stable framerate, so your run can be saved stable and with proper sound (which is impossible if your CPU/GPU can't sustain doing this in real-time).
* If disabling vsync, it can save movies faster than the game is run, but if you want to control the interaction it can get difficult.
* Implements a simple, default MJPEG writer.

This new features has two main use cases, which have high demand:
* Saving game videos in high quality and ensuring the frame rate is *completely* stable, always.
* Using Godot as a tool to make movies and animations (which is ideal if you want interaction, or creating them procedurally. No other software is as good for this).

**Note**: This feature **IS NOT** for capturing real-time footage. Use something like OBS, SimpleScreenRecorder or FRAPS to achieve that, as they do a much better job at intercepting the compositor than Godot can probably do using Vulkan or OpenGL natively. If your game runs near real-time when capturing, you can still use this feature but it will play no sound (sound will be saved directly).

Usage:

$ godot --write-movie movie.avi [scene_file.tscn]

Missing:

* Options for configuring video writing via GLOBAL_DEF
* UI Menu for launching with this mode from the editor.
* Add to list of command line options.
* Add a feature tag to override configurations when movie writing (fantastic for saving videos with highest quality settings).
2022-06-21 11:28:47 +02:00
Rémi Verschelde bcd783fa9a doctest: Update to 2.4.9 2022-06-19 10:41:56 +02:00
Cyberrebell 6a2bd6c936 updated vk_mem_alloc.h to fix startup issue with AMD 6000 series GPUs using SteamVR on Windows 2022-06-12 23:36:06 +02:00
Rémi Verschelde e297ddf656
Merge pull request #61891 from akien-mga/meshoptimizer-20220601 2022-06-10 13:14:45 +02:00
Rémi Verschelde a3195dd4eb meshoptimizer: Sync with upstream commit ea4558d1c
ea4558d1c0
2022-06-10 12:46:50 +02:00
Rémi Verschelde 776418942c etcpak: Update to upstream release 1.0 (June 4, 2022)
No change compared to our previous commit, just documentation update
and a release tag we can track.
2022-06-10 12:36:45 +02:00
bruvzg efb5d7adf0
Fix FreeType crashing in GCC + LTO builds. 2022-06-08 13:59:13 +03:00
K. S. Ernest (iFire) Lee 1b776a6e7a Allow picking similar colours using OKHSL. 2022-06-07 05:53:27 -07:00
bruvzg 797ccd3ef8
HarfBuzz: Update to version 4.3.0 2022-05-23 13:18:11 +03:00
Rémi Verschelde 86cdf1f2cf rvo2: Sync with upstream commit bfc0486
bfc048670a
2022-05-18 14:53:52 +02:00
Rémi Verschelde 6c78170d8c 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.
2022-05-18 14:40:34 +02:00
Rémi Verschelde 24a06a6d4a pcre2: Fix support for macOS < 11.0 by making JIT conditional at runtime 2022-05-18 11:41:09 +02:00
Rémi Verschelde b052835ca3
Merge pull request #61137 from akien-mga/meshoptimizer-20220424 2022-05-17 23:49:50 +02:00
Rémi Verschelde fa0c9c951f
Merge pull request #61136 from akien-mga/xatlas-20220318
xatlas: Sync with upstream 16ace528a
2022-05-17 23:36:10 +02:00
Rémi Verschelde e2d0aa3779
Merge pull request #61135 from akien-mga/recast-20220320 2022-05-17 23:35:37 +02:00
Rémi Verschelde 7e4a02d66c
Merge pull request #61120 from akien-mga/doctest-2.4.8 2022-05-17 23:25:14 +02:00
Rémi Verschelde e4e61df438 meshoptimizer: Sync with upstream commit 8a7d69caa
8a7d69caa6
2022-05-17 23:24:52 +02:00
Rémi Verschelde 0c1429da0d
Merge pull request #61132 from akien-mga/freetype-cleanup
FreeType: Cleanup some unused files
2022-05-17 23:19:29 +02:00
Rémi Verschelde 10c99d7b41 xatlas: Sync with upstream 16ace528a
Just cleaning up unused but set variables.

16ace528ac
2022-05-17 23:03:23 +02:00
Rémi Verschelde 4635f24322 Recast: Update to upstream commit 5a870d4 (2022) 2022-05-17 22:59:40 +02:00
Rémi Verschelde 03ff10de8a FreeType: Cleanup some unused files 2022-05-17 22:31:05 +02:00
Rémi Verschelde eb9fd57f76 doctest: Update to 2.4.8 2022-05-17 21:53:32 +02:00
Rémi Verschelde fd6eb2c2d2 pcre2: Update to upstream version 10.40
Changelog: https://github.com/PCRE2Project/pcre2/blob/pcre2-10.40/ChangeLog
2022-05-17 21:37:20 +02:00
bruvzg 93fba7ead3
Update HarfBuzz, ICU and FreeType.
HarfBuzz: Update to version 4.2.1
FreeType: Update to version 2.12.1
ICU: Update to version 71.1
2022-05-17 18:39:31 +03:00
Rémi Verschelde e8520044e7
Merge pull request #61047 from akien-mga/thorvg-0.8.1 2022-05-15 16:04:05 +02:00
Rémi Verschelde 154d081212 thorvg: Sync with upstream 0.8.1
And backport fix for FreeBSD support.

Fixes #60003.
2022-05-15 11:45:42 +02:00
bruvzg 71cc26f55e
etcpak: Update to upstream commit f128369 (May 13, 2022) 2022-05-13 15:58:53 +03:00
Rémi Verschelde 9570f3bf45 etcpak: Update to upstream commit 10fc4ce (May 12, 2022)
Fixes support for ARMv7+NEON.
2022-05-12 14:13:47 +02:00
Casper Beyer d3dde0727c Normalize thirdparty readme formatting 2022-04-01 15:26:17 +08:00
Rémi Verschelde 420d0d50bc 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.
2022-03-31 15:19:11 +02:00
bruvzg 56544d8013
HarfBuzz: Update to version 4.2.0 2022-03-31 13:03:43 +03:00
Rémi Verschelde e9b928b42a
Merge pull request #59524 from RandomShaper/update_vma 2022-03-29 13:07:01 +02:00
Pedro J. Estébanez 171e31de68 vk_mem_alloc: Update to upstream + Replace use of deprecated items 2022-03-29 11:28:09 +02:00
Rémi Verschelde 8c12dfe099
Merge pull request #56718 from Geometror/noise-overhaul 2022-03-28 21:59:18 +02:00
Rémi Verschelde c21215628d
Merge pull request #59510 from bruvzg/use_woff2_fonts 2022-03-25 11:25:42 +01:00
bruvzg 78051f93a3
Convert the editor and default theme fonts to WOFF2 format to save space. 2022-03-25 11:45:55 +02:00
K. S. Ernest (iFire) Lee 3529141b4b Update basis universal to version 1.16.3.
Enable basis universal uastc internal storage instead of etc1s for better quality.
2022-03-24 22:41:23 -07:00
Rémi Verschelde 2a116f601b
Merge pull request #59275 from bruvzg/ft_brotli 2022-03-22 12:47:00 +01:00
Hendrik Brucker 2a55f10e8b Add FastNoiseLite / general noise overhaul
- replace OpenSimplexNoise

Co-authored-by: Cory Petkovsek <tinmanjuggernaut@users.noreply.github.com>
2022-03-20 14:53:45 +01:00
bruvzg e07a8f0aa6
Add brotli decoder and WOFF2 support. 2022-03-18 15:09:38 +02:00
bruvzg 94a365e94b
HarfBuzz: Update to version 4.0.1 2022-03-18 14:50:57 +02:00
Rémi Verschelde 3d7f155586 Remove unused Bullet module and thirdparty code
It has been disabled in `master` since one year (#45852) and our plan
is for Bullet, and possibly other thirdparty physics engines, to be
implemented via GDExtension so that they can be selected by the users
who need them.
2022-03-09 21:45:47 +01:00
K. S. Ernest (iFire) Lee f7a809603c ThorVG: Sync with upstream 0.8.0 2022-03-08 06:30:31 -08:00
bruvzg 9b0fbfa06d
HarfBuzz: Update to version 4.0.0 2022-03-02 10:48:37 +02:00
Rémi Verschelde 90d16a3210
Merge pull request #58497 from JFonS/stb_rect_pack_upgrade 2022-02-25 12:31:40 +01:00
Pedro J. Estébanez 801741e787 vk_mem_alloc: Update to upstream + Adapt approach to small objects pooling
This updates VMA and instead of using the custom small pool approach from 4e6c9d3ae9, lazily creates pools for the relevant memory type indices, which doesn't require patching VMA.

Also, patches already merged upstream or not needed any longer are removed.
2022-02-24 14:30:55 +01:00
jfons 0395b5e414 Upgrade stb_rect_pack to 1.01
Enables large rectangle support by default.
2022-02-24 13:15:41 +01:00
Bastiaan Olij 65bae5a341 Add OpenXR 1.0.22 to thirdparty libraries
Will be compiled and used in the next commit.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-02-23 11:50:45 +01:00
Rémi Verschelde 09a61cdf53
Merge pull request #57989 from RandomShaper/update_vma
Update & patch VMA, and re-implement the small buffers optimization
2022-02-14 09:07:11 +01:00
Pedro J. Estébanez 648a10514b vk_mem_alloc: Update to latest commit 2022-02-12 12:45:28 +01:00
Rémi Verschelde 84d7a69570
spirv-reflect: Update to latest commit, adds SPIRV 1.6 support 2022-02-11 18:42:51 +01:00
Rémi Verschelde 26b2defe0c
vulkan: Update volk, headers and glslang to 1.3.204 2022-02-11 18:42:51 +01:00
Rémi Verschelde 8f4793b225
Revert "vulkan: Update volk, headers and glslang to 1.3.204"
This reverts commit d233908fb6.
2022-02-11 17:50:22 +01:00
Rémi Verschelde e11f0d9bfd
Revert "spirv-reflect: Update to latest commit, adds SPIRV 1.6 support"
This reverts commit 912c2062e6.
2022-02-11 17:49:45 +01:00
Rémi Verschelde 912c2062e6
spirv-reflect: Update to latest commit, adds SPIRV 1.6 support 2022-02-11 00:05:17 +01:00
Rémi Verschelde d233908fb6
vulkan: Update volk, headers and glslang to 1.3.204 2022-02-10 23:57:03 +01:00
bruvzg 346a4b4f50
msdfgen: Update to version 1.9.2 2022-02-09 14:24:26 +02:00
bruvzg c768189bd2
HarfBuzz: Update to version 3.3.2 2022-02-09 14:22:04 +02:00
K. S. Ernest (iFire) Lee 419b342a9a Faster CVTT by reducing quality.
Make BC6 and BC7 CVTT faster while still having better quality than DXT5.
2022-02-04 15:15:26 -08:00
Rémi Verschelde 6acbd5f774
Merge pull request #57102 from akien-mga/libwebp-1.2.2 2022-02-03 15:16:57 +01:00
Rémi Verschelde 339dcd80ae
libwebp: Sync with upstream 1.2.2
Changes: https://chromium.googlesource.com/webm/libwebp/+/1.2.2/NEWS
2022-02-02 23:29:30 +01:00
bruvzg 5676b3c022
HarfBuzz: Update to version 3.3.1 2022-02-02 22:29:31 +02:00
Anilforextra 3382e0304d ThorVG: Sync with upstream 0.7.1
Changes: https://github.com/Samsung/thorvg/releases/tag/v0.7.1
2022-01-31 23:39:25 +05:45
Rémi Verschelde 04d283dc23
Merge pull request #36198 from Calinou/code-font-jetbrains-mono 2022-01-20 21:43:17 +01:00
Rémi Verschelde cb7f28ad95
thorvg: Fix missing `<cstring>` includes for MinGW
Fixes #56894.
2022-01-18 12:31:18 +01:00
Hugo Locurcio 40be15920f
Remove support for PVRTC texture encoding and decoding
On the only platform where PVRTC is supported (iOS),
ETC2 generally supersedes PVRTC in every possible way. The increased
memory usage is not really a problem thanks to modern iOS' devices
processing power being higher than its Android counterparts.
2022-01-14 21:08:22 +01:00
K. S. Ernest (iFire) Lee 8d02759c72
Use ThorVG instead of NanoSVG for importing SVGs
ThorVG is a platform-independent portable library for drawing vector-based
scene and animation.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-01-14 15:49:39 +01:00
Rémi Verschelde f615926d3c
freetype: Update to upstream version 2.11.1 2022-01-13 08:40:18 +01:00
Rémi Verschelde 8c76ad188b
glslang: Fix support for building against public/system library
Fix include paths to support both vendored and system-installed glslang.

Remove usage of the private `StandAlone` bits.
Requires us to vendor a copy of `DefaultTBuiltInResource` (or provide our own
customized one) as glslang doesn't provide it in its public API.
Also removes unused C interface as it's not well encapsulated and depends on
`StandAlone`.

Fixes #56307.
2022-01-12 14:36:02 +01:00
bruvzg b63aced768
HarfBuzz: Update to version 3.2.0 2022-01-12 10:17:30 +02:00
Hugo Locurcio b5f88b1efc
Use JetBrains Mono as the editor's default code font
This recently released font has been gaining popularity thanks to
its readability and aesthetics. It also features font ligatures
(enabled by default, but can be disabled in the Editor Settings).

Its character set isn't as extensive as Hack's, but it should be
sufficient for most uses.

More information at <https://www.jetbrains.com/lp/mono/>.

This also reorders the third-party font notices to be in
alphabetical order.
2022-01-05 01:35:50 +01:00
Fabio Alessandrelli e375cbd094 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.
2021-12-21 13:26:02 +01:00
Fabio Alessandrelli 36d316876b 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.
2021-12-20 13:58:54 +01:00
Rémi Verschelde 256406a0bc
Merge pull request #55505 from bruvzg/hb_312 2021-12-02 09:35:45 +01:00
Vincent 2d0068d1cb Fix crash when loading an invalid mp3 file 2021-12-01 14:30:38 +01:00
bruvzg 371010c5f9
HarfBuzz: Update to version 3.1.2 2021-12-01 09:37:48 +02:00
Je06jm 20deb0917d Implemented AMD's FSR as a computer shader for upscaling 3D scenes 2021-11-23 14:16:03 -07:00
Rémi Verschelde 2b287509eb
Merge pull request #55128 from akien-mga/meshoptimizer-f4c356d79 2021-11-22 12:22:59 +01:00
Rémi Verschelde a74e2c5058
Merge pull request #55136 from akien-mga/basisu-646a9f826 2021-11-20 10:47:29 +01:00
Rémi Verschelde bf18965a51
Merge pull request #55126 from akien-mga/wslay-45d22583b 2021-11-20 10:47:20 +01:00
Rémi Verschelde 58443f73fe
Merge pull request #55129 from akien-mga/libvorbis-1.3.7 2021-11-20 10:47:09 +01:00
Rémi Verschelde e97634f56d
Merge pull request #55127 from akien-mga/libwebp-1.2.1 2021-11-20 10:47:00 +01:00
Rémi Verschelde bd896bf915
Merge pull request #55122 from akien-mga/zstd-1.5.0 2021-11-20 10:46:41 +01:00
Rémi Verschelde 0a76ddc3dd
Merge pull request #55123 from akien-mga/xatlas-ec707faea 2021-11-20 10:46:33 +01:00
Rémi Verschelde 4f444cc815
Merge pull request #55120 from akien-mga/pcre2-10.39 2021-11-20 10:46:24 +01:00
Rémi Verschelde 3924aa6e8f
Merge pull request #55119 from akien-mga/libogg-1.3.5 2021-11-20 10:46:15 +01:00
Rémi Verschelde 882d61791b
Merge pull request #55118 from akien-mga/graphite-80c52493e 2021-11-20 10:46:06 +01:00
Rémi Verschelde e6fd2d550e
Merge pull request #55115 from akien-mga/tinyexr-1.0.1 2021-11-20 10:45:56 +01:00
Rémi Verschelde 2c22caccc5
basis_universal: Sync with upstream 646a9f826
646a9f8261
2021-11-19 18:40:08 +01:00
Rémi Verschelde a706ef3272
wslay: Sync with upstream 45d22583b
45d22583b4

Mostly style changes, a couple new methods and fixes.
Tweak file structure a bit.
2021-11-19 15:47:20 +01:00
Rémi Verschelde 28ad2e8c72
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
2021-11-19 14:08:06 +01:00
Rémi Verschelde 2410f5de03
meshoptimizer: Sync with upstream commit f4c356d79
f4c356d79f
2021-11-19 14:02:49 +01:00
Rémi Verschelde 41ce417847
libwebp: Sync with upstream 1.2.1
Changes: https://chromium.googlesource.com/webm/libwebp/+/1.2.1/NEWS
2021-11-19 13:55:13 +01:00
Rémi Verschelde 5bea1370f0
zstd: Update to upstream version 1.5.0
Release notes: https://github.com/facebook/zstd/releases/tag/v1.5.0
2021-11-19 13:01:58 +01:00
Rémi Verschelde 0b84b26b2e
xatlas: Sync with upstream ec707faea
ec707faeac
2021-11-19 12:59:01 +01:00
Rémi Verschelde 914b7f825d
pcre2: Update to upstream version 10.39
Changelog: https://github.com/PhilipHazel/pcre2/blob/pcre2-10.39/ChangeLog
2021-11-19 12:47:40 +01:00
Rémi Verschelde 77efd406bf
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.
2021-11-19 12:33:13 +01:00
Rémi Verschelde d1360895ee
graphite: Update to upstream commit 80c52493e
80c52493ef

Includes a fix for inaccurate slice range calculation for bases with diacritics.

Also removes unnecessary ChangeLog, and updated unrelated vhacd commit to match
currently used one.
2021-11-19 12:23:54 +01:00
Rémi Verschelde 432ac521ef
miniupnpc: Update to version 2.2.3
Library code and public headers are now properly separated, we can fix include paths
to remove the redundant subfolder.
2021-11-19 12:00:37 +01:00
Rémi Verschelde 46d3effa99
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.
2021-11-19 11:25:14 +01:00