Commit graph

5300 commits

Author SHA1 Message Date
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
08eaeff640
Merge pull request #88050 from bruvzg/sec_state
[macOS] Enabled secure restorable state.
2024-02-07 11:07:09 +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
Rémi Verschelde
c9c2b12637
Merge pull request #88028 from Calinou/wayland-silence-scanner-check
Silence wayland-scanner check in buildsystem
2024-02-07 11:06:00 +01:00
Rémi Verschelde
67234eafc1
Merge pull request #88024 from Calinou/doc-android-package-unique-name
Improve documentation on Android package unique name
2024-02-07 11:05:10 +01:00
Rémi Verschelde
7cd3467713
Merge pull request #88010 from akien-mga/web-closure-ECMASCRIPT_2021
Web: Bump closure compiler spec to `ECMASCRIPT_2021`
2024-02-07 11:04:47 +01:00
Rémi Verschelde
3b6f2e0525
Merge pull request #87977 from Chubercik/wayland-1.22.0
wayland: Update to 1.22.0
2024-02-07 11:02:05 +01:00
Rémi Verschelde
bf8814ed10
Merge pull request #87842 from bruvzg/sigtrap
[macOS] Add SIGTRAP to the crash handler.
2024-02-07 10:59:42 +01:00
Rémi Verschelde
4f478a55cc
Merge pull request #86843 from RandomShaper/fix_null_ptr
Avoid several null-dereferences of ApiContextRD
2024-02-07 10:58:01 +01:00
bruvzg
84380a94f7
[macOS] Enabled secure restorable state. 2024-02-07 10:59:35 +02:00
jsjtxietian
ea974e1877 Fix data race regarding server_quit in EditorExportPlatformWeb 2024-02-07 11:27:38 +08:00
Pedro J. Estébanez
d5a5dd52e8 Avoid several null-dereferences of ApiContextRD 2024-02-06 19:55:01 +01:00
Hugo Locurcio
7b0f2a5f53
Silence wayland-scanner check in buildsystem
This prevents a wayland-scanner message from appearing every build
when `wayland=yes` is used (the default). The error message when
wayland-scanner is still printed as it's not printed by
wayland-scanner itself.
2024-02-06 19:49:34 +01:00
Hugo Locurcio
111908c4ed
Improve documentation on Android package unique name
- Document `$genname` behavior.
- Update to match actual validation and Google Play guidelines.
2024-02-06 18:20:39 +01:00
Jakub Marcowski
292df42c3f wayland: Update to 1.22.0 2024-02-06 10:23:42 +01:00
Rémi Verschelde
d29b0d90e0
Web: Bump closure compiler spec to ECMASCRIPT_2021
Fixes #88008.
2024-02-06 09:19:07 +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
Rémi Verschelde
843c350cca
Merge pull request #87956 from adamscott/fix-emscripten-lto-build
Add workaround for emscripten >= 3.1.47 LTO build
2024-02-05 18:05:26 +01:00
Adam Scott
5922ac0fb1
Fix emscripten 3.1.51 breaking change about *glGetProcAddress() 2024-02-05 11:55:03 -05:00
bruvzg
70e328385c
[macOS] Check Vulkan SDK version when looking for MoltenVK libs. 2024-02-04 23:09:52 +02:00
Adam Scott
656bc22e28
Add workaround for emscripten >= 3.1.47 LTO build 2024-02-04 15:24:24 -05:00
Rémi Verschelde
c680c7cffe
Merge pull request #87912 from bruvzg/menu_name_set_fix
[macOS] Fix changing main menu item names.
2024-02-03 23:22:35 +01:00
Rémi Verschelde
bbccd95d22
Merge pull request #84885 from shana/vsproj-for-everyone
New VS proj generation logic that supports any platform that wants to opt in
2024-02-03 23:17:18 +01:00
bruvzg
112f489449
[macOS] Fix changing main menu item names. 2024-02-03 21:12:48 +02:00
Rémi Verschelde
99db7204dc
Merge pull request #87848 from nikitalita/natvis-cowdata-fix
Fix `godot.natvis` after CowData 64-bit promotion
2024-02-02 12:05:39 +01:00
nikitalita
559b434ef1 Fix natvis after CowData 64-bit changes 2024-02-01 13:40:06 -08:00
bruvzg
b990cb95a9
[macOS] Add SIGTRAP to the crash handler. 2024-02-01 23:30:33 +02:00
Stuart Carnie
8f6d4eaa31
use autorelease pools around main loop
Reduces memory usage considerably
2024-02-02 07:06:53 +11:00
Andreia Gaita
7638a6c981 Add new VS proj generation logic that supports any platform that wants to opt in
Custom Visual Studio project generation logic that supports any platform that has a msvs.py
script, so Visual Studio can be used to run scons for any platform, with the right defines per target.

Invoked with `scons vsproj=yes`

To generate build configuration files for all platforms+targets+arch combinations, users should call

```
scons vsproj=yes platform=XXX target=YYY [other build flags]
```

for each combination of platform+target[+arch]. This will generate the relevant vs project files but
skip the build process, so that project files can be quickly generated without waiting for a command line
build. This lets project files be quickly generated even if there are build errors.

All possible combinations of platform+target are created in the solution file by default, but they
won't do anything until each one is set up with a scons vsproj=yes command for the respective platform
in the appropriate command line. This lets users only generate the combinations they need, and VS
won't have to parse settings for other combos.

Only platforms that opt in to vs proj generation by having a msvs.py file in the platform folder are included.
Platforms with a msvs.py file will be added to the solution, but only the current active platform+target+arch
will have a build configuration generated, because we only know what the right defines/includes/flags/etc are
on the active build target currently being processed by scons.

Platforms that don't support an editor target will have a dummy editor target that won't do anything on build,
but will have the files and configuration for the windows editor target.

To generate AND build from the command line, run

```
scons vsproj=yes vsproj_gen_only=no
```
2024-01-31 16:42:42 +01:00
Rémi Verschelde
9adb7c7d13
Merge pull request #87764 from Riteo/wayland-native-handle
Wayland: Implement `window_get_native_handle`
2024-01-31 14:01:59 +01:00
Rémi Verschelde
f23fda39d3
Merge pull request #87776 from bruvzg/wl_nfd
[Wayland] Add support for native file dialogs.
2024-01-31 14:00:30 +01:00
bruvzg
edb21e0573
[Wayland] Add support for native file dialogs. 2024-01-31 14:13:19 +02:00
Riteo
d8658df94e Wayland: implement window_get_native_handle
This will be the most useful for stuff like OpenXR, although we'd need a
way to eventually also expose the EGL handles.
2024-01-31 11:57:05 +01:00
Rémi Verschelde
7de88873a6
Merge pull request #87765 from Riteo/wayland-skip-no-scanner
Wayland: Disable backend at build-time if wayland-scanner is missing
2024-01-31 10:56:06 +01:00
Rémi Verschelde
6287d7ce70
Merge pull request #87720 from fire/llvm-mingw-qitabent
Avoid non-constant-expression cannot be narrowed on Windows on mingw.
2024-01-31 10:55:19 +01:00
K. S. Ernest (iFire) Lee
f711b4f01f Avoid non-constant-expression cannot be narrowed on Windows mingw.
Fixes non-constant-expression cannot be narrowed from type 'DWORD' (aka 'unsigned long') to 'int' in initializer list [-Wc++11-narrowing]

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2024-01-30 20:21:26 -08:00
Riteo
c3d6cc57be Wayland: disable backend at build-time if wayland-scanner is missing
This allows previous X11-only setups to still build Godot with default
settings. Note that compilation will still abort if wayland-scanner is
present but not the various Wayland libraries.
2024-01-31 02:08:33 +01:00
Rémi Verschelde
aff437e623
Merge pull request #87734 from bruvzg/raw_str_d3d
Use raw strings for D3D12 install messages.
2024-01-30 17:48:19 +01:00
Riteo
7e0f7d3abd Add Wayland support
Not everything is yet implemented, either for Godot or personal
limitations (I don't have all hardware in the world). A brief list of
the most important issues follows:

- Single-window only: the `DisplayServer` API doesn't expose enough
information for properly creating XDG shell windows.

- Very dumb rendering loop: this is very complicated, just know that
the low consumption mode is forced to 2000 Hz and some clever hacks are
in place to overcome a specific Wayland limitation. This will be
improved to the extent possible both downstream and upstream.

- Features to implement yet: IME, touch input, native file dialog,
drawing tablet (commented out due to a refactor), screen recording.

- Mouse passthrough can't be implement through a poly API, we need a
rect-based one.

- The cursor doesn't yet support fractional scaling.

- Auto scale is rounded up when using fractional scaling as we don't
have a per-window scale query API (basically we need
`DisplayServer::window_get_scale`).

- Building with `x11=no wayland=yes opengl=yes openxr=yes` fails.

This also adds a new project property and editor setting for selecting the
default DisplayServer to start, to allow this backend to start first in
exported projects (X11 is still the default for now). The editor setting
always overrides the project setting.

Special thanks to Drew Devault, toger5, Sebastian Krzyszkowiak, Leandro
Benedet Garcia, Subhransu, Yury Zhuravlev and Mara Huldra.
2024-01-30 16:44:47 +01:00
bruvzg
ffdf8084c0
Use raw strings for D3D12 install messages. 2024-01-30 11:13:12 +02:00
Rémi Verschelde
51991e2014
Merge pull request #84674 from m4gr3d/add_flag_to_run_scons_from_gradle
Add parameter to allow generation of the Godot native shared libraries from gradle
2024-01-29 23:24:05 +01:00
Rémi Verschelde
604f8b093e
Merge pull request #87624 from bruvzg/dx12_old_mingw
[D3D12] Add support for building with pre-11.0.0 MinGW versions, make PIX runtime opt-in.
2024-01-29 13:17:41 +01:00
Rémi Verschelde
f220d46cdc
Merge pull request #80231 from romlok/input-key-location
Support detecting and mapping ctrl/alt/shift/meta by their left/right physical location
2024-01-29 13:15:42 +01:00
bruvzg
dfa303f7c4
[D3D12] Add support for building with pre-11.0.0 MinGW versions, make PIX runtime opt-in. 2024-01-26 20:43:18 +02: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
Rémi Verschelde
b4e519b07f
SCons: Fix Windows cross-compilation from Linux after #86717 2024-01-26 12:42:09 +01:00
Rémi Verschelde
31baf464b3
Merge pull request #87549 from emanvidmaker/DarkModeOnWin10Patch
Make dark mode Title Bar work on Windows 10 1909 (build:18363) and above
2024-01-26 11:47:50 +01:00
Rémi Verschelde
cd5e973d7a
Merge pull request #86717 from mrbbbaixue/d3d12-sdk-install-python
Add a python script to install Direct3D 12 SDK components.
2024-01-26 11:43:49 +01:00
Emanvidmaker
a16ca4b96c Added dark mode support for Windows 10, versions 1909(18363) and above 2024-01-25 18:07:01 -07:00
Yuri Sizov
474011ac06 Merge pull request #87543 from akien-mga/version-remove-year
Remove now unused `year` member from `version.py`
2024-01-25 16:27:21 +01:00