Commit Graph

272 Commits

Author SHA1 Message Date
Rémi Verschelde ca708b5706
Merge pull request #92026 from Repiteo/scons/web-fixes
SCons: Minor fixes/adjustments for web compilation
2024-05-28 15:48:49 +02:00
Rémi Verschelde ac6f5780b1
Merge pull request #91695 from bruvzg/web_ime_pos
[Web IME] Fix suggestion window position in Chromium based browsers.
2024-05-28 15:48:42 +02:00
A Thousand Ships 4ed62665a2
Replace `.bind(...).call_deferred()` with `.call_deferred(...)` 2024-05-27 13:29:57 +02:00
Thaddeus Crews 5d265e9a7e
SCons: Minor fixes/adjustments for web compilation 2024-05-24 12:30:24 -05:00
Rémi Verschelde 7870b28ed3
Merge pull request #92252 from poiati/fix-wayland-window-class
Properly set window class in Wayland
2024-05-23 08:59:23 +02:00
Rémi Verschelde de490253fe
Merge pull request #92124 from Repiteo/scons/platform-flags-dict
SCons: Convert platform `get_flags` to dictionary
2024-05-23 08:59:07 +02:00
Thaddeus Crews 896b003cc8
SCons: Convert platform `get_flags` to dictionary 2024-05-22 13:53:20 -05:00
Paulo Poiati a3769c0edc Properly set window class in Wayland 2024-05-22 10:42:12 -03:00
patwork 1a89ae70eb Upgrade to eslint 9 2024-05-22 11:32:25 +02:00
Jakub Marcowski d9f8ef68df
Update pre-commit hooks configuration to use `ruff` instead of `black` 2024-05-21 18:02:29 -05:00
Hakim 04aaa86039 Disable remote debug button when there are no runnable presets 2024-05-17 00:15:13 +02:00
patwork b6536884cc Fix quotes style in HTML shell head include 2024-05-12 01:37:13 +02:00
bruvzg 99d6f32918
[Web IME] Fix suggestion window position in Chromium based browsers. 2024-05-09 08:52:27 +03:00
Adam Scott c465dbb051
Default to non-threaded export setting for the web 2024-05-06 12:21:14 -04:00
A Thousand Ships 955d5affa8
Reduce and prevent unnecessary random-access to `List`
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
Radiant 789c6ebdfd Implement `amplitude` to Input.vibrate_handheld
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: m4gr3d <m4gr3d@users.noreply.github.com>
2024-05-02 19:09:42 +03:00
Adam Scott 51d2ebf2da
Add more Remote Debug options to the web platform 2024-05-01 14:11:05 -04:00
Rémi Verschelde b1da4b2a84
Merge pull request #91128 from patwork/splash-image-in-web-export
Splash image support and new progress bar for HTML5 Web Export
2024-04-30 17:03:21 +02:00
Rémi Verschelde 947f5a8741
Merge pull request #91247 from AThousandShips/callable_fix
Fix unsafe uses of `Callable.is_null()`
2024-04-29 10:10:32 +02:00
Rémi Verschelde dee1231ce6
Merge pull request #91220 from Repiteo/scons/colorize-warn-error
SCons: Colorize warnings/errors during generation
2024-04-29 10:10:16 +02:00
Rémi Verschelde 8211b0d143
Merge pull request #91202 from Faless/web/fix_cc_typedef
[Web] Fix closure compiler typedef annotation
2024-04-29 10:10:03 +02:00
Thaddeus Crews e0e8ce1fc0
SCons: Colorize warnings/errors during generation 2024-04-28 16:24:48 -05:00
Aaron Franke 1bcbbe96c4
Organize existing code for editor plugins 2024-04-27 11:59:58 -07:00
A Thousand Ships 31e7ee63f2
Fix unsafe uses of `Callable.is_null()`
`Callable.is_null()` is not equivalent to `!Callable.is_valid()` and
doesn't guarantee the call is valid.
2024-04-27 16:22:57 +02:00
Fabio Alessandrelli 8079cd4358 [Web] Fix closure compiler typedef annotation
The typedef annotation is expected to come bofre a var (or const) since
it's most commonly used in externs. Use an inline definition instead.
2024-04-26 13:11:41 +02:00
patwork 7c8a4a9dab Added splash image support and new progress bar for web export 2024-04-25 11:12:55 +02:00
Fredia Huya-Kouadio 764de7fe31 Collapse the gdextension arguments into the `GDExtensionData` struct
This is used to reduce the number of arguments to `OS::open_dynamic_library(...)`.
2024-04-19 07:56:02 -07:00
Fredia Huya-Kouadio ede88cf59d Fix loading GDExtension dependencies on Android 2024-04-19 07:55:08 -07:00
Rémi Verschelde 79173d1fd8
Merge pull request #90698 from Faless/fix/web/serve_py_dual_stack_windows
[Web] Fix serve.py utility on Windows
2024-04-16 13:30:51 +02:00
kobewi dce4a3e4c2 Add get_process_exit_code() method 2024-04-16 12:46:15 +02:00
Fabio Alessandrelli 67a51c9316 [Web] Fix serve.py utility on Windows
IPv6 dual stack is disabled by default, and Windows resolves wildcard
addresses to an IPv6 by default, so connecting through the local IPv4
address would not work.

This enables IPv6 dual stacking for the HTTP server by default like done
in upstream python when launching the module from CLI.
2024-04-15 19:16:50 +02:00
Rémi Verschelde e73f40e260
Merge pull request #87117 from DmitriySalnikov/rename_pdb
Add renaming of PDB files to avoid blocking them
2024-04-11 11:02:31 +02:00
Mikael Hermansson a057158d75 Revert pack trimming introduced by #82084 2024-04-10 12:00:04 +02:00
DmitriySalnikov b73e740786 Add renaming of PDB files to avoid blocking them 2024-04-05 00:14:23 +03:00
Rémi Verschelde 7092230df6
Merge pull request #89907 from bruvzg/nat_dlg_ftr_flags
[DisplayServer] Add separate feature flags for different native dialog types.
2024-03-28 10:47:15 +01:00
bruvzg 082b420c0a
Implement `OS.execute_with_pipe` method to run process with redirected stdio.
Implement `pipe://*` path handling for creation of named pipes.
2024-03-27 11:41:16 +02:00
bruvzg dc01658ee9
[DisplayServer] Add separate feature flags for different native dialog types. 2024-03-26 15:18:06 +02:00
Rémi Verschelde aa0e57e00c
Merge pull request #89598 from dustdfg/web/fix-supported-arch-message
Fix platform name in the message about unsupported CPU architecture
2024-03-24 01:19:06 +01:00
Rémi Verschelde f49efbe0e5
Merge pull request #89229 from akien-mga/main-refactor-os-exit-code
Refactor OS exit code to be `EXIT_SUCCESS` by default
2024-03-24 01:15:06 +01:00
Yevhen Babiichuk (DustDFG) ca60255d8c Fix platform name in the message about unsupported CPU architecture
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-03-17 09:28:53 +02:00
A Thousand Ships 24c9d442e9
[Doc] Fix some incorrect uses of `a/an` 2024-03-13 21:20:28 +01:00
Rémi Verschelde 0475011c66
Merge pull request #82084 from ogapo/pr/pck-cache-merge
Merge `uid_cache.bin` and `global_script_class_cache.cfg` after mounting PCKs
2024-03-11 14:01:16 +01:00
Rémi Verschelde 023dcd44c1
Refactor OS exit code to be `EXIT_SUCCESS` by default
- `Main::setup` early exits (failure or `--help`/`--version`) now
  consistently return `EXIT_FAILURE` or `EXIT_SUCCESS` on all platforms,
  instead of 255 on some and a Godot Error code on others.
- `Main::start` now returns the exit code, simplifying the handling of early
  failures.
- `Main::iteration` needs to explicit set the exit code in OS if it errors
  out.
- Web and iOS now properly return `OS::get_exit_code()` instead of 0.
2024-03-08 23:31:24 +01:00
David Nikdel 5e6adb4a2d Merge uid_cache.bin and global_script_class_cache.cfg after mounting PCKs
fixes godotengine#82061
fixes godotengine#61556

Also, distinguish between main pack and DLC packs.
It's desirable to downloaded content to be as small as possible. This change avoids bloating non-main pack files with new versions of resources that are all read on startup and never used again. They have no effect if loaded after startup.
- project.godot/project.binary file
- extension_list.cfg
- app icon and boot_splash
- .ico and .icns files (these can still be opted in for DLC by listing them explicitly in the include filter)
2024-03-06 12:14:21 -05:00
bruvzg c65a667924
Move `global_menu_*` methods to a separate `NativeMenu` class. 2024-03-04 23:41:41 +02:00
Micky c54e09a5a3 Overhaul some "uncommon" wording in class reference 2024-03-01 15:32:38 +01:00
kobewi 3aeb4a5542 Improve cursor_set_custom_image() method 2024-02-28 20:32:25 +01:00
A Thousand Ships 9e6158d687
[Docs] Fix some experimental/deprecated hints 2024-02-23 19:48:53 +01:00
Adam Scott 3ae524fa9e
Add `WASM_BIGINT` linker flag to the web build 2024-02-20 08:19:56 -05:00
Rémi Verschelde ef5d6ccfb7
Merge pull request #86966 from Muller-Castro/value2ref-core
Add const lvalue ref to `core/*` container parameters
2024-02-15 15:44:43 +01:00
Thaddeus Crews 633dcf6dfd
SCons: "Environment" to "SConsEnvironment" 2024-02-14 09:26:47 -06:00
Muller-Castro a8bc9f3e78 Add const lvalue ref to core/* container parameters 2024-02-14 11:20:36 -03:00
Rémi Verschelde 1b55fa15b0
Merge pull request #86089 from adamscott/pwa-coop-coep
Add PWA option to ensure cross-origin isolation headers on web export
2024-02-12 23:29:16 +01:00
Adam Scott 62cec03a06
Add option to ensure cross-origin isolation headers on web export 2024-02-12 09:27:39 -05:00
Rémi Verschelde ed7f1186a6
Merge pull request #88155 from Rubonnek/use-safeflag-instead
Use `SafeFlag` for `EditorHTTPServer.server_quit`
2024-02-12 13:34:41 +01:00
Rémi Verschelde 0178cd47a5
Merge pull request #86977 from Mickeon/documentation-editor-export-platform-web-no-funny-quirks-in-this-branch
Add documentation to EditorExportPlatformWeb
2024-02-12 13:33:52 +01:00
Micky 7ffacb5d49 Add documentation to EditorExportPlatformWeb 2024-02-11 18:28:27 +01:00
Wilson E. Alvarez c32e48890f
Use SafeFlag for EditorHTTPServer.server_quit 2024-02-09 14:37:17 -05:00
Rémi Verschelde 74b03edf1e
Merge pull request #82800 from Sauermann/fix-screen-mousemotion
Add screen-related attributes to mouse input events
2024-02-09 18:08:58 +01:00
Fabio Alessandrelli fdf6fa82c3 [Web] Move polling thread to EditorHTTPServer 2024-02-07 20:40:12 +01:00
Fabio Alessandrelli 222214c05f [Web] Move EditorHTTPServer implementation to cpp. 2024-02-07 14:25:56 +01:00
Rémi Verschelde 7223c5b54a
Fix various typos with codespell
Using 2.2.7.dev115+g0eb441d6.

Had to add `cancelled` to the ignore list, as it's a Wayland signal which
we're handling in our code, so we don't want codespell to fix that "typo".

Also includes the typo fix from #87927.

Co-authored-by: Divyanshu Shekhar <61140213+divshekhar@users.noreply.github.com>
2024-02-07 11:09:34 +01:00
Rémi Verschelde e89807514e
Merge pull request #88043 from jsjtxietian/web-data-race
Fix data race regarding `server_quit` in `EditorExportPlatformWeb`
2024-02-07 11:06:23 +01:00
jsjtxietian ea974e1877 Fix data race regarding `server_quit` in `EditorExportPlatformWeb` 2024-02-07 11:27:38 +08:00
Rémi Verschelde d29b0d90e0
Web: Bump closure compiler spec to ECMASCRIPT_2021
Fixes #88008.
2024-02-06 09:19:07 +01:00
Markus Sauermann 2235a1cbd0 Add screen-related attributes to mouse input events 2024-02-05 23:30:15 +01:00
Rémi Verschelde d3352813ea
Merge pull request #87981 from adamscott/add-emscripten--sgl_enable_get_proc_address-linker-flag
Fix emscripten 3.1.51 breaking change about `*glGetProcAddress()`
2024-02-05 18:06:15 +01:00
Adam Scott 5922ac0fb1
Fix emscripten 3.1.51 breaking change about `*glGetProcAddress()` 2024-02-05 11:55:03 -05:00
Adam Scott 656bc22e28
Add workaround for emscripten >= 3.1.47 LTO build 2024-02-04 15:24:24 -05:00
Mel Collins 8406e60522 Add InputEventKey.location to tell left from right
This adds a new enum `KeyLocation` and associated property
`InputEventKey.location`, which indicates the left/right location of key
events which may come from one of two physical keys, eg. Shift, Ctrl.

It also adds simulation of missing Shift KEYUP events for Windows.
When multiple Shifts are held down at the same time, Windows natively
only sends a KEYUP for the last one to be released.
2024-01-26 14:42:28 +01:00
Adam Scott bd70b8e1f6
Add THREADS_ENABLED macro in order to compile Godot to run on the main thread 2024-01-17 13:58:29 -05:00
Yuri Sizov 95b27fe8c7 Reorganize code related to editor theming
This change introduces a new EditorThemeManager class
to abstract theme generatio and its subroutines.

Logic related to EditorTheme, EditorColorMap, and editor
icons has been extracted into their respective files with
includes cleaned up.

All related files have been moved to a separate folder to
better scope them in the project. This includes relevant
generated files as well.
2024-01-16 11:57:45 +01:00
Muller-Castro 96a95cb974 Add const lvalue ref to container parameters 2024-01-05 14:49:57 -03:00
nikitalita 6788bc6bc2
SCons: Add `stack_size` and `default_pthread_stack_size` options to Web target 2024-01-03 14:11:24 +01:00
bruvzg f9486a2d88
[Web] Add IME input support. 2023-12-15 19:11:10 +02:00
Rémi Verschelde ae7c533937
Merge pull request #84686 from dsnopek/webxr-msaa
Add MSAA support for WebXR
2023-12-12 00:17:16 +01:00
Adam Scott 8e5fbd4348
Set what were default values for some emscripten linkflags
- Set `-sSTACK_SIZE` to what it was before emscripten 3.1.27.
  It was renamed in 3.1.25 so also set `-sTOTAL_SIZE` for older
  versions for consistency.
- Set `-sDEFAULT_PTHREAD_STACK_SIZE` to what it was before 3.1.30.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2023-12-11 19:53:11 +01:00
David Snopek 275c496bc8 Add MSAA support for WebXR 2023-12-11 09:01:24 -06:00
Yuri Sizov 773b4d7764 Ensure more export errors are reported to users
Also fixes the timing issue when exporting all
presets at the same time, where the error report
would try to appear while the progress dialog
was still visible.
2023-12-06 15:26:07 +01:00
Rémi Verschelde ba713c80df
Fix various typos with codespell
Using 2.2.7.dev51+geb4a58fe.
2023-11-11 23:01:24 +01:00
Adam Scott 230cebb4b7
Revert to `proxy_to_pthread=no` as default
Currently, `proxy_to_pthread=yes` option as default breaks WebXR
support.
2023-10-23 08:45:45 -04:00
Fabio Alessandrelli e9df955e39 [Web] Fix closure compiler builds using BIGINT
When using proxy_to_pthread we add BIGINT support (to support exchanging
64 bits integers between wasm and JS).

Bigint though, is part of ECMAScript 2020, and the closure compiler was
using ECMAScript 6 instead.

This commit update the CC configuration to use ECMAScript 2020 instead.
2023-10-21 14:02:22 +02:00
Fabio Alessandrelli bb69f0c090 [Web] Improve emscripten "locateFile" glue.
Be more selective on what we rewrite, since in recent emscripten
versions loading dynamic libraries relies on it.
2023-10-11 21:21:34 +02:00
Rémi Verschelde a28dab7e82
Merge pull request #79711 from adamscott/web-non-blocking-main-thread
Add `proxy_to_pthread` option to `platform=web`
2023-10-09 23:22:22 +02:00
Adam Scott 78c2a08fae
Add `proxy_to_pthread` option to `platform=web`
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
2023-10-09 11:50:01 -04:00
Rémi Verschelde a1d7c62df7
Merge pull request #83003 from AThousandShips/null_check_extra
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-10-09 15:37:14 +02:00
A Thousand Ships f18aa00e85 Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-10-08 17:23:33 +02:00
Mario Liebisch 56a3cdc2f0
Web: Catch using GDExtensions in a non-dlink build
Previously this would simply fail with a cryptic
`me.rtenv.loadDynamicLibrary is not a function` error.
2023-10-06 18:02:53 +02:00
kobewi 09b30be86d Add vararg call() method to C++ Callable 2023-10-05 11:35:29 +02:00
Adam Scott 8447cbc16d
Fix godot_js_wrapper_create_cb regression 2023-10-03 12:52:20 -04:00
Rémi Verschelde 9b29efd772
Merge pull request #82633 from Faless/web/visibility_expose
[Web] Fix `dlink_enabled` build
2023-10-02 13:16:51 +02:00
Rémi Verschelde 5fe97c5844
Merge pull request #82441 from akien-mga/web-clarify-get_unique_id
Web: Clarify that `OS.get_unique_id` is not supported
2023-10-02 13:16:31 +02:00
Fabio Alessandrelli 0bbadd6883 [Web] Fix dlink_enabled build
After changing the default visibility to hidden to avoid generating
thousands of import/export symbols (browsers have a hard limit of 10k),
explicitly setting visibility for "boundary functions" (i.e. wasm
callbacks called by JS via pointer) is required to ensure the function
can be retrieved via pointer from the function table.
2023-10-01 19:44:46 +02:00
Danil Alexeev aff767ef07
Fix expected argument count for `Callable` call errors 2023-09-29 20:00:10 +03:00
Rémi Verschelde 0a10f09ce4
Web: Clarify that `OS.get_unique_id` is not supported
Remove the base error message in `OS`, we no longer really error out this
way for not implemented methods. Instead, each platform should override them
to provide the context they want.

Fixes #82439.
2023-09-27 15:17:45 +02:00
Mario Liebisch 426e18fd37
Updated compiler version detection
This fixes multiple issues/inconsistencies around  `get_compiler_version()`:
* With no shell allocated, launching the compiler could fail even
  with proper paths being set.
* The return value was described as "an array of version numbers as ints",
  but the function actually returned a `Dictionary` (or `None`).
* Not all calls were properly handling a `None` return value in case of errors.
  On Windows this broke compiling for me since #81869 with default settings.
* Some calls defined inconsistent defaults/fallbacks (`0` or `-1`).
2023-09-25 21:17:20 +02:00
Rémi Verschelde bafcd32f15
Merge pull request #81716 from akien-mga/web-disable-raycast-embree
Web: Disable raycast module by default (no occlusion culling)
2023-09-22 22:03:55 +02:00
bruvzg 1887a9df19
[macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching.
Co-authored-by: Riteo <riteo@posteo.net>
2023-09-21 14:21:00 +03:00
Rémi Verschelde 50161808c2
Web: Fix version check for missing scalbnf LTO workaround
The check needs to happen after we set `env["CXX"]`.
Follow-up to #81340.
2023-09-18 16:32:20 +02:00
Rémi Verschelde 8c40edf8c0
Web: Disable raycast module by default (no occlusion culling)
This means no CPU occlusion culling (and not compiling Embree), unless
you compile custom export templates with `module_raycast_enabled=yes`.

This reduces the memory footprint significantly, and binary size.

Fixes #70621.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2023-09-16 21:00:04 +02:00