1
0
Fork 0
Commit Graph

408 Commits

Author SHA1 Message Date
Thaddeus Crews 608e7a27eb
Merge pull request #105242 from adamscott/add-wasm-ld-wall
[Web] Add the equivalent of `-Werror` for `wasm-ld`
2025-04-11 09:51:12 -05:00
Thaddeus Crews cad0cd94ef
Merge pull request #105225 from bruvzg/ds_gdsoft
Change `DisplayServerMacOS` from `GDCLASS` to `GDSOFTCLASS`. Add `GDSOFTCLASS` to other display servers.
2025-04-10 16:53:42 -05:00
Adam Scott ce4f64583a
Add the equivalent of `-Werror` for `wasm-ld` 2025-04-10 11:49:03 -04:00
A Thousand Ships 889410dcda
Add `String::replace_char(s)` methods for performance and convenience 2025-04-10 13:08:45 +02:00
Pāvels Nadtočajevs 0497522933
Change `DisplayServerMacOS` from `GDCLASS` to `GDSOFTCLASS`. Add `GDSOFTCLASS` to other display servers. 2025-04-10 09:18:58 +03:00
bruvzg c6739f64df
[Export] Use project settings overrides with the target preset features instead of current platform features. 2025-04-08 21:22:37 +03:00
Yufeng Ying 4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
Pāvels Nadtočajevs 4638ade13f
Enable TTS on demand, instead of fully disabling it when project setting is not set. 2025-04-01 15:24:46 +03:00
Lukas Tenbrink fa0a3c9c6e Add and require `GDSOFTCLASS` for `Object` subclasses that want to cast but do not use `GDCLASS`. 2025-03-31 20:49:50 +02:00
kobewi 75881f8322 Use initializer list in Arrays 2025-03-26 18:38:15 +01:00
Rémi Verschelde 622dbe3713
Web: Fix editor build after `#pragma once` refactoring 2025-03-20 18:43:16 +01:00
Thaddeus Crews 83cf424b5f
SCons: Expand `NoCache` coverage 2025-03-18 09:54:55 -05:00
Thaddeus Crews 10ed66f28c
SCons: Add emitter to declutter build objects 2025-03-15 12:08:24 -05:00
Thaddeus Crews 77e9f55c51
Merge pull request #102676 from adamscott/add-web-library-emitter
[Web] Add library emitter to make sources dependent of compiler version
2025-03-11 16:53:53 -05:00
Thaddeus Crews 0bb1f138f2
Merge pull request #100525 from adamscott/set-closure-language-to-default
Remove custom `--language-in` arg for the Closure compiler
2025-03-11 14:00:35 -05:00
shahriarlabib000 25a8b808d3 update logo/run icon path in README 2025-03-10 12:03:41 +06:00
Thaddeus Crews 324512e11c
Style: Replace header guards with `#pragma once` 2025-03-07 17:33:47 -06:00
Thaddeus Crews 3d9b37911d
Merge pull request #103011 from Repiteo/style/svgo-newline
Style: Ensure svgs have trailing newlines
2025-03-07 15:12:41 -06:00
A Thousand Ships 5113022dfe
Clean up some uses of `String::substr`
Cases where the end position is either equvalent to the default or past
the end of the string.
2025-03-07 14:50:38 +01:00
Thaddeus Crews 7e5baa0426
Style: Enforce trailing newlines on svgs 2025-02-18 11:02:45 -06:00
Adam Scott 030e7d4e2d
[Web] Fix issue when pausing an non-started sample 2025-02-17 09:49:50 -05:00
Adam Scott 61344dc5ac
[Web] Refactor `mouse_mode` setters in display server 2025-02-13 17:25:35 -05:00
Adam Scott cdb6fc7f74
[Web] Remove position pool system and return false when done instead 2025-02-11 10:43:34 -05:00
Adam Scott 02cc1ec95b
[Web] Add library emitter to make sources dependent of compiler version 2025-02-10 16:18:35 -05:00
Thaddeus Crews a7e5469155
Merge pull request #102163 from adamscott/fix-glitched-audio-web
[Web] Fix audio issues with samples and GodotPositionReportingProcessor
2025-01-31 09:15:49 -06:00
Pāvels Nadtočajevs b3f7c8f5d3 [Export] Respect icon/splash screen import settings. 2025-01-31 07:45:16 +02:00
Adam Scott c558c8a5f1
[Web] Fix audio issues with samples and GodotPositionReportingProcessor 2025-01-29 17:02:14 -05:00
Thaddeus Crews 3c80c14092
Merge pull request #101924 from adamscott/game-editor-non-cached-mouse-mode
Delegate handling `mouse_mode` to the `DisplayServer`
2025-01-28 16:08:56 -06:00
Adam Scott 47f553ae0b
Delegate to the DisplayServer the task of handling mouse_mode
- Add `MOUSE_MODE_MAX` and various index checks
2025-01-28 11:22:27 -05:00
Rémi Verschelde 90208f7dd4 SCons: Fix handling of platform-specific tools, notably `mingw`
Add optional `detect.py` `get_tools` method to let platforms register SCons
tools they need.

This helps move this logic out of SConstruct, keeping platforms more self
contained, and helping thirdparty platforms define their own custom tools.

This logic was also unreliable (the `use_mingw` one would only work if
passed manually on the command line, not in e.g. `get_flags`).

Co-authored-by: Thaddeus Crews <repiteo@outlook.com>
2025-01-25 13:59:30 +01:00
Malcolm Anderson 6b33037021 Add menu bar item for "Pack Project as ZIP..."
Apply suggestions from code review

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>

Fix includes

Update editor/editor_node.cpp

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-01-09 20:37:02 -08:00
Rémi Verschelde 26db0bb15f SCons: Make `lto=auto` prefer ThinLTO over full LTO for LLVM targets
This speeds up build time considerably for these platforms compared to
using `lto=full`, which is sadly single-threaded with LLVM, unlike GCC.

Changes to default behavior of `lto=auto` (i.e. `production=yes`):
- Linux: Prefer ThinLTO for LLVM
- Web: Prefer ThinLTO
- Windows: Prefer ThinLTO for llvm-mingw

The following LLVM targets don't use LTO by default currently, which
needs to be assessed further (gains from LLVM LTO on performance need
to be weighed against the potential size increase from heavy inlining):
- Android
- iOS
- macOS
- Windows clang-cl
2025-01-09 13:03:58 +01:00
Rémi Verschelde 6f3cc27423
Merge pull request #101178 from BlueCube3310/web-high-quality
Web: Export ASTC/BPTC compressed textures
2025-01-08 21:48:13 +01:00
Yufeng Ying 34d8255947 Force build editor with regex module, remove checking code.
Fix include.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-07 19:43:23 +08:00
Rémi Verschelde 11f95e7feb
Merge pull request #99350 from bruvzg/fs_mime
Support MIME types in file dialog filters on macOS and Linux.
2025-01-06 22:46:59 +01:00
Rémi Verschelde 990416e90b
Merge pull request #99296 from elpozewaunig/web_splash_properties
Add web support for all missing splash screen properties
2025-01-06 22:46:55 +01:00
BlueCube3310 84e6ac9ecd Web: Export ASTC/BPTC compressed textures 2025-01-06 12:31:22 +01:00
Pāvels Nadtočajevs e1f129cb52 Support MIME types in file dialog filters on macOS and Linux. 2025-01-04 22:05:35 +02:00
Elias Pozewaunig 8de13860e8 Added web support for all missing splash screen properties
show_image, fullsize and use_filter are now supported too.

bg_color, image and minimum_display_time were already supported previously.
2025-01-03 17:56:05 +01:00
Ricardo Subtil b77aa473a1 Implement a "Recovery Mode" for recovering crashing/hanging projects during initialization 2025-01-03 10:50:15 +00:00
Rémi Verschelde 89b18de032
Merge pull request #100221 from adamscott/fix-diraccess-sync
[Web] Fix `DirAccess::unlink()` not updating the IDBFS
2025-01-03 02:01:16 +01:00
Hilderin 9d2a4c03be Embedding game process in editor 2024-12-18 17:52:42 -05:00
Rémi Verschelde 4cc471dbed
Merge pull request #100553 from tygyh/snyk-fix-450c49dd4b2c073502654af4e06e6ec6
Web: Security upgrade eslint from 9.12.0 to 9.15.0
2024-12-18 17:23:46 +01:00
snyk-bot 97ecf7830a
fix: platform/web/package.json & platform/web/package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-CROSSSPAWN-8303230
- https://snyk.io/vuln/SNYK-JS-ESLINTPLUGINKIT-8340627
2024-12-18 10:28:34 +00:00
Rémi Verschelde f08fe52d9a
Merge pull request #99963 from Faless/web/no_ip
[Web] Implement dummy IP and NetSocket
2024-12-17 22:59:42 +01:00
Fredia Huya-Kouadio 2d3f6963b2 Update the visibility for the custom templates for all platforms
Hide the custom template options behind the `Advanced Options` toggle
2024-12-17 13:08:47 -08:00
Adam Scott 3011717e14
Remove custom `--language-in` arg for the Closure compiler 2024-12-17 13:52:30 -05:00
Rémi Verschelde 0d4c68f82b
Merge pull request #100482 from adamscott/fix-closure-issues
Fix (some of the) 3.1.73 emscripten Closure compiler issues
2024-12-17 16:19:29 +01:00
Rémi Verschelde 182b4741ea
Merge pull request #93479 from Repiteo/scons/better-colored-output
SCons: Improve colored output
2024-12-17 16:18:41 +01:00
Adam Scott 20daa75d43
Fix (some of the) 3.1.73 emscripten Closure compiler issues 2024-12-16 14:05:07 -05:00
Ryan Braganza a7505ee0bc Add Web MIDI support
Co-authored-by: Adam Scott <ascott.ca@gmail.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-12-15 21:24:15 +11:00
Thaddeus Crews 6cbf7c77c2
Merge pull request #100150 from ArchercatNEO/homeless-export
Use temp dirs instead of cache dirs for export
2024-12-10 14:15:54 -06:00
Thaddeus Crews d8761f2c79
SCons: Improve colored output 2024-12-10 11:44:48 -06:00
Fabio Alessandrelli 9d329f54c0 [Web] Restore ScriptProcessorNode audio driver fallback
Godot has a ScriptProcessorNode audio driver implementation for the
(deprecated) Web API.

As reported by some users, this fallback was not properly re-added
during the Godot 4 transition, and was left as "dead code".

While the API is deprecated, it is still supported by most browsers, and
some WebView may not implement AudioWorklet correctly (the new
recommended API).

This commit re-adds the ScriptProcessorNode implementation as a fallback
if the AudioWorklet driver fails to initialized (and can be forced if
desired via project settings as usual).
2024-12-10 18:22:03 +01:00
Adam Scott a6c5373a09
[Web] Fix `DirAccess::unlink()` not updating the IDBFS 2024-12-09 17:48:08 -05:00
ArchercatNEO 00a791f04e Use temp dirs instead of cache dirs for export
Fixes #95897
During CI scenarios $HOME may be set to an invalid value (such as
`/var/empty`).
Using temp dirs fits better with godot's usage of these paths and is
independent from the user's $HOME.
2024-12-08 12:07:17 +00:00
Fabio Alessandrelli 14e4e3424f [Web] Implement dummy NetSocketWeb
This makes the class available to avoid spam from classes using it, even
if without any actual implementation (since raw sockets are not
available on the web).
2024-12-03 14:30:35 +01:00
Fabio Alessandrelli c831f635fe [Web] Implement dummy IPWeb instead of IPUnix
Note: This commit ties the IPUnix to the UNIX_SOCKET_UNAVAILABLE define,
disabling it when set. It is maybe not semantically correct (getifaddrs)
is not part of the "socket" API, but it's reasonable to expect that a
platform not supporting Unix-style sockets, would also not support other
Unix network functions.
2024-11-28 20:47:18 +01:00
Thaddeus Crews 3a5ce2ff94
Merge pull request #98901 from adamscott/add-editor-ensure-crossorigin-isolation-headers
[Web] Ensure editor crossorigin isolation headers
2024-11-27 10:47:13 -06:00
Thaddeus Crews 57125f48ce Merge pull request #98069 from thedinosoar/fix/service-worker-sandbox-error-98068
[Web] Fix PWA callback assignment causing crash in sandboxed iframes
2024-11-25 13:22:29 -06:00
Thaddeus Crews 17e8cf0d87 Merge pull request #99044 from Sticksman/bug-fix-98873
Remove deprecated worker.js file
2024-11-22 14:54:41 -06:00
Adam Scott 1a082fdd80
Ensure editor crossorigin isolation headers 2024-11-21 10:29:07 -05:00
Fabio Alessandrelli b4f8135d46 [Web] Fix Web Editor plugin being added to SCons multiple times
Move the Web Editor plugin files to an editor sub-folder inside the
platform folder.
2024-11-18 18:34:29 +01:00
A Thousand Ships 68f638cf02
Use `(r)find_char` instead of `(r)find` for single characters 2024-11-17 10:02:18 +01:00
Thaddeus Crews a767a65cdf
Merge pull request #99123 from tygyh/Update-vulnerable-plugins
Update JavaScript/Java plugins to solve known vulnerabilities
2024-11-13 08:34:00 -06:00
Fabio Alessandrelli 9383610ad1 [Web] Disable UNIX sockets
They are not supported anyway, emscripten has an emulation layer that
implements them over WebSocket/WebRTC, which is really surprising for
users, and also not very useful since we have proper WebSocket and
WebRTC support.

This can make the build smaller, if we also disable the UPNP module
(which will otherwise include a third party library referencing "socket"
thus forcing emscripten to include the compatibility layer)
2024-11-13 10:28:08 +01:00
Thaddeus Crews 0445bfb01c
Merge pull request #98931 from adamscott/fix-ime-web-issues
[Web] Fix issue where focus timer would throw continuously
2024-11-12 09:28:10 -06:00
Thaddeus Crews a833685e75
Merge pull request #96625 from elpozewaunig/web_splash_color
Display project settings splash color on web export
2024-11-12 09:28:08 -06:00
Thaddeus Crews e66d9988a6
Merge pull request #95774 from Mickeon/documentation-miscellaneous-oddities
Fix miscellaneous oddities around the class reference
2024-11-12 09:27:47 -06:00
Dr. Dystopia 3077463151
Update JavaScript/Java plugins to solve known vulnerabilities
Done using the Snyk tool.
2024-11-12 16:06:35 +01:00
Elias Pozewaunig 4db5cd6e84 Display correct splash color on web export 2024-11-11 21:35:25 +01:00
Adam Scott 5295692990
Fix issue where focus timer would throw continuously 2024-11-11 15:08:16 -05:00
Felix Yuan 1768a1b991 Remove deprecated worker.js file 2024-11-11 09:47:43 -08:00
Adam Scott 784558f327
[Web] Remove warnings when setting vsync mode and screen keep on 2024-11-07 14:06:34 -05:00
Adam Scott 75bf6df49a
Make IME code early return instead 2024-11-07 13:27:29 -05:00
Thaddeus Crews be70c2f873
Merge pull request #98350 from syntaxerror247/android-native-filepicker
[Android] Implement native file picker support
2024-10-31 20:14:41 -05:00
Yevhen Babiichuk (DustDFG) 0ba0093dd6 Remove duplicate of get_build_version
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-10-31 12:54:23 +02:00
Anish Mishra 0dfd18c84b [DisplayServer] Add feature flag for native file dialog access to `user/res` and `options` 2024-10-30 14:13:43 +05:30
Thaddeus Crews 17f06f6dae
Merge pull request #97555 from dustdfg/platform_methods/extract_validate_arch
Build System: Extract `validate_arch` helper functions
2024-10-25 13:03:48 -05:00
Thaddeus Crews 1015a481ff
Merge pull request #98431 from lodicolo/4.3-stable_GH_76825
Fix GodotFetch glue code for null response bodies
2024-10-24 13:23:07 -05:00
Robbie Lodico c7f421ef5f
Fix GodotFetch glue code for null response bodies
The spec says that Response.body can be null (in the event of requests that should have no body, like HEAD requests) and Firefox adheres to it which results in request failure for HEAD requests on Firefox for web exports.

This commit addresses that by treating a null body as an "empty" body (without using a polyfill) and avoids changing the request lifecycle as much as possible.

PR review changes:
- Use == instead of strict ===
- Do not use ?? null
- Comment formatting
2024-10-23 08:10:35 -04:00
Keegan McGonigle 05b266bd89 Fix PWA callback assignment and error handling 2024-10-22 10:28:21 -07:00
Yevhen Babiichuk (DustDFG) 7aacdaa071 Build System: Extract `validate_arch` helper function
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-10-06 07:50:49 +03:00
Adam Scott 7a634ad2d4
[Web] Make audio bus fetching more resilient to errors 2024-10-02 11:24:57 -04:00
Adam Scott 4431af9153
Fix web export infinite reload issue 2024-09-30 11:27:43 -04:00
Rémi Verschelde eeaca3a439
Merge pull request #96610 from adamscott/emscripten-minimum-requirements
[Web] Update minimum requirements for emscripten to 3.1.62
2024-09-26 18:45:10 +02:00
Adam Scott a1e409c58b
Update minimum requirements for emscripten to 3.1.62 2024-09-26 10:19:48 -04:00
Thaddeus Crews 9f9ee0c813
SCons: Add unobtrusive type hints in SCons files 2024-09-25 09:34:35 -05:00
Adam Scott a9b934b657
Add `JavaScriptBridge` buffer methods 2024-09-16 12:13:34 -04:00
A Thousand Ships dd6443193c
[Editor] Expose more editor settings to documentation
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
2024-09-12 15:34:49 +02:00
bruvzg 10f3c1f587
Add support for non-blocking IO mode to `OS.execute_with_pipe`. 2024-09-06 14:16:39 +03:00
Rémi Verschelde 13a90e938f
Merge pull request #70096 from rune-scape/stringname-dict
StringName Dictionary keys
2024-09-03 17:38:06 +02:00
rune-scape 154049ce17 StringName Dictionary keys
also added 'is_string()' method to Variant
and refactored many String type comparisons to use it instead
2024-08-29 13:39:27 -07:00
bruvzg 07e986f728
Allow adding custom export platforms using scripts / GDExtension. 2024-08-28 10:29:01 +03:00
Fredia Huya-Kouadio a5897d579b Update the `GodotHost` interface to support signing and verifying Android apks
Update the export logic to enable apk generation and signing for Android editor builds

Note: Only legacy builds are supported. Gradle builds are not supported at this point in time.
2024-08-26 11:16:38 -07:00
Rémi Verschelde b4f268fae8
Merge pull request #91018 from Daylily-Zeleen/daylily-zeleen/optionally_postinitialization_for_extension_owner
Allow ClassDB to create a Object without postinitialization for GDExtension.
2024-08-26 10:51:17 +02:00
Adam Scott aaafd163b2
Honor `pitch_scale` value before playing audio sample 2024-08-20 10:29:32 -04:00
Daylily-Zeleen 3d575801ce Allow ClassDB to create a Object without postinitialization for GDExtension. 2024-08-20 20:19:02 +08:00
Rémi Verschelde d1424135d1
Merge pull request #90352 from Faless/web/serve_fix_browser_order
[Web] Fix browser opening too early with `serve.py`
2024-08-19 14:33:26 +02:00
Micky b8f78b14be Fix miscellaneous oddities around the class reference 2024-08-18 23:18:44 +02:00