1
0
Fork 0
Commit Graph

1924 Commits

Author SHA1 Message Date
bruvzg da1fca613f
Fix crash in release build with llvm-mingw. 2025-04-15 20:18:11 +03:00
Thaddeus Crews 0d267e7b1e
Core: Add dedicated `BitField` template 2025-04-11 11:53:26 -05:00
Thaddeus Crews 717df3ee88
Merge pull request #105249 from Repiteo/core/math-defs-namespace
Core: Use `Math` namespace for constants
2025-04-11 09:51:04 -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
Thaddeus Crews 94282d88f9
Core: Use `Math` namespace for constants 2025-04-10 16:29:30 -05: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
Thaddeus Crews a8598cd8e2
Merge pull request #71542 from bruvzg/export_project_settings
[Export] Use project settings overrides with the target preset features instead of current platform features.
2025-04-09 08:51:47 -05:00
Thaddeus Crews 4362b11557
Merge pull request #103405 from van800/shakhov/macosx
Fix `.sln` project generation logic for Rider to support all OS and all C++ toolchains
2025-04-09 08:51:45 -05: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
Thaddeus Crews e6a61b1ecc
Merge pull request #76829 from bruvzg/ac_kit_direct
Implement screen reader support using AccessKit library.
2025-04-08 12:32:47 -05:00
Pāvels Nadtočajevs 4310cb82b8
AccessKit integration for macOS, Linux, and Windows. 2025-04-08 20:25:47 +03:00
Ivan Shakhov 6ff86e49cf Fix .sln project generation logic for Rider to support all OS and all C++ toolchains
Co-authored-by: Andreia Gaita <shana@spoiledcat.net>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-04-08 15:40:05 +02:00
Pāvels Nadtočajevs f37fb49739
Add separate `minimize_disabled` and `maximize_disabled` window flags. 2025-04-07 18:58:11 +03:00
Thaddeus Crews 207a2b6472
Core: Integrate warning suppression macro helpers 2025-04-03 10:13:46 -05:00
Thaddeus Crews 1f56d96cf2
Merge pull request #104893 from Repiteo/scons/external-includes-alt
SCons: Add `CPPEXTPATH` for external includes
2025-04-02 07:48:03 -05:00
Thaddeus Crews f25fc34439
SCons: Add `CPPEXTPATH` for external includes 2025-04-02 07:29:08 -05: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
Thaddeus Crews 780cf03051
Merge pull request #104556 from Ivorforce/string-extend-instead-of-parse
Use `append_` instead of `parse_` for `String` methods.
2025-03-29 10:16:33 -05:00
Thaddeus Crews 7a28334596
SCons: Ensure MinGW as fallback if missing MSVC 2025-03-29 10:14:20 -05:00
bruvzg 48bfe13e4f
Add methods to decode/encode multibyte encodings. 2025-03-28 17:32:34 +02:00
Cliear 9dfa751425 [Windows] Fixed the issue where newly created window incorrectly acquired the popup property on Windows. 2025-03-28 04:10:03 +08:00
Lukas Tenbrink ffa6ef220b Use `append_` instead of `parse_` for `String` methods. 2025-03-27 17:51:02 +01:00
Pāvels Nadtočajevs e00b7dc72d
[Windows] Fix borderless maximized window mode. 2025-03-27 10:19:07 +02:00
Thaddeus Crews f09ee0171a
Style: Begin integrating simple `.clangd` fixes 2025-03-22 13:24:35 -05:00
kobewi 10f6c01b9c Remove ABS in favor of Math::abs 2025-03-19 13:52:40 +01:00
Rémi Verschelde 2fa721b1bc
Merge pull request #104127 from Ivorforce/360-noclip
Remove `String` clipping constructors.
2025-03-19 12:27:10 +01:00
Rémi Verschelde a117a2b09c
Merge pull request #101980 from bruvzg/init_scale
[DisplayServer] Decouple `show_window(MAIN_WINDOW_ID)` from `DisplayServer` constructor, update project manager size/position after DS init.
2025-03-19 12:26:33 +01:00
Rémi Verschelde b2950e8138
Merge pull request #101904 from bruvzg/win_export_update_icon_cache
Update Windows icon cache after export.
2025-03-19 12:26:26 +01:00
Pāvels Nadtočajevs f6891b0305
[DisplayServer] Decouple `show_window(MAIN_WINDOW_ID)` from `DisplayServer` constructor, update project manager size/position after DS init. 2025-03-19 11:23:04 +02:00
Thaddeus Crews 8774c608ff
Merge pull request #95606 from Hilderin/fix-unfocused-windows-cant-be-dragged
Fix unfocused windows can't be dragged
2025-03-18 14:42:42 -05:00
Thaddeus Crews 83cf424b5f
SCons: Expand `NoCache` coverage 2025-03-18 09:54:55 -05:00
Thaddeus Crews 863a5ff139
Merge pull request #101641 from Repiteo/scons/separate-build-dir-emitter
SCons: Add emitter to declutter build objects
2025-03-15 19:42:44 -05:00
Thaddeus Crews c8b00c03fd
SCons: Fix broken msvc conditional 2025-03-15 18:14:52 -05:00
Thaddeus Crews 10ed66f28c
SCons: Add emitter to declutter build objects 2025-03-15 12:08:24 -05:00
Lukas Tenbrink a23f630781 Remove `String` clipping constructors.
Callers should instead call constructors with explicit encoding names, with known length `Span`.
2025-03-15 12:34:44 +01:00
Lukas Tenbrink f4de2cd22a Use `resize_zeroed` instead of `resize` then `fill(0)` in several places. 2025-03-14 12:09:39 +01:00
Aaron Franke 97ee05e9b7
Rename version defines to GODOT_VERSION_* to match GDExtension godot-cpp 2025-03-12 11:11:38 -07:00
Thaddeus Crews 1aefcf77af
Merge pull request #88852 from bruvzg/borderless_hack
[Windows] Remove visible WINDOW_MODE_FULLSCREEN border by setting window region.
2025-03-11 16:54:08 -05:00
Thaddeus Crews 4f0cbc9a58
Merge pull request #103864 from Repiteo/scons/simplify-msvc
SCons: Simplify Windows/MSVC detection
2025-03-11 14:01:02 -05:00
bruvzg db7c94bd65
[Windows] Remove visible WINDOW_MODE_FULLSCREEN border by setting window region. 2025-03-11 20:50:55 +02:00
A Thousand Ships 331a43a9d8
Add `String::remove_char(s)` methods for performance and convenience 2025-03-10 13:19:28 +01:00
Thaddeus Crews 4505352021
SCons: Simplify Windows/MSVC detection 2025-03-09 10:45:32 -05:00
Thaddeus Crews cae3d722a3
Merge pull request #99321 from AThousandShips/use_get_slicec
Use `get_slicec` instead of `get_slice` for single character splitters
2025-03-09 09:05:29 -05:00
Thaddeus Crews 2324805fdc
Merge pull request #103773 from Calinou/windows-low-processor-mode-sleep-cpu
Use more efficient sleep approach on Windows when low-processor mode is enabled
2025-03-09 09:05:27 -05:00
A Thousand Ships 466590d0ec
Use `get_slicec` instead of `get_slice` for single character splitters 2025-03-08 20:36:37 +01: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
Thaddeus Crews c937b6d180
Merge pull request #102419 from Ivorforce/std-size
Use `std::size` instead of `sizeof(a) / sizeof(a[0])` pattern throughout the codebase.
2025-03-07 15:12:25 -06:00
Hugo Locurcio 03b4e0dd58
Use more efficient sleep approach on Windows when low-processor mode is enabled
This aims to fix the idle CPU utilization regression from 4.3 to 4.4
by reverting to the previous approach, but only when low-processor mode
is enabled.
2025-03-07 18:06:41 +01:00
bruvzg 3e4e6e6c0c Improve native file dialog parent window selection. 2025-03-06 17:15:39 +02:00
Pāvels Nadtočajevs 6ed12bfc5d [Linux/BSD] Offload RenderingDevice creation test to subprocess. 2025-03-04 13:18:26 +02:00
Rémi Verschelde 53faed5351
Merge pull request #103339 from Hilderin/adjustment-error-message-embedded-game
Replace error to info messages for embedded game
2025-02-27 12:40:39 +01:00
Pāvels Nadtočajevs ddd807ff7d Add `(void *)` cast directly to `GetProcAddress` calls. 2025-02-27 12:30:04 +02:00
Hilderin 0c384e7217 Replace error to info messages for embedded game 2025-02-26 19:32:25 -05:00
Rémi Verschelde 82aacc129f
Merge pull request #103245 from bruvzg/rd_helper
[Windows] Offload `RenderingDevice` creation test to subprocess.
2025-02-25 15:28:06 +01:00
Pāvels Nadtočajevs ab717497ef [Windows] Offload `RenderingDevice` creation test to subprocess. 2025-02-24 19:40:10 +02:00
AThousandShips 1f5f96c47f
[Windows] Fix unused variable error in `DisplayServerWindows` 2025-02-24 18:08:13 +01:00
Rémi Verschelde b77423370a
Fix cross-platform configuration of rendering driver settings
Simpler alternative to #103026 which avoids breaking compatibility.

Instead of introducing a new `auto` default value, we ensure that all
supported drivers are registered regardless of the editor's host platform,
and that the defaults are the intended ones.

This solves the following issues:
- macOS exports are meant to default to Metal in 4.4, but they would
  default to Vulkan if exported from Linux, Windows, or Android editors.
- Windows exports couldn't be made with Direct3D 12 from Linux, macOS, or
  Android editors, as the option couldn't be selected outside Windows.

Unlike #103026, it doesn't solve the issue of not always saving the
rendering drivers to `project.godot`, but now the defaults are at least
consistent between editor platforms.

Co-authored-by: Pāvels Nadtočajevs <7645683+bruvzg@users.noreply.github.com>
2025-02-23 12:28:59 +01:00
Rémi Verschelde 58e4e34564
Merge pull request #103176 from 0xcafeb33f/theora-asm-opt
Fix libtheora optimizations causing errors in calling function for x86_64 Windows
2025-02-23 12:13:13 +01:00
Rémi Verschelde 05c56e8393
Merge pull request #103052 from Hilderin/fix-embedded-game-mouse-over-not-focused-windows
Fix Embedded Game does not focus when mouse over on Windows
2025-02-23 12:12:47 +01:00
cafebeef 5201dfb34c Windows x86_64 GCC: Disable Theora assembly optimizations
Co-authored-by: Bernat Arlandis <berarma@hotmail.com>
2025-02-22 17:20:55 -06:00
Hilderin c7bc322bf6 Fix Embedded Game does not focus when mouse over on Windows 2025-02-20 16:28:18 -05:00
Rémi Verschelde 26fd3458f9
Windows: Configure MinGW LTO with `-fno-use-linker-plugin -fwhole-program`
- Works around and closes #102867.
- Works around and closes #102982.

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2025-02-20 17:47:26 +01:00
Thaddeus Crews 70eb62faf2
Merge pull request #103021 from Hilderin/fix-embedded-game-start-location-windows
Fix Embedded Game startup location on Windows
2025-02-19 16:54:09 -06:00
Thaddeus Crews e91493fb7b
Merge pull request #102993 from bruvzg/fix_cb_win_erase
Prevent pending input event callbacks from erasing the window in the middle of a loop.
2025-02-18 20:47:53 -06:00
Hilderin 224d9bfe3f Fix Embedded Game startup location on Windows 2025-02-18 19:05:15 -05:00
Thaddeus Crews 7e5baa0426
Style: Enforce trailing newlines on svgs 2025-02-18 11:02:45 -06:00
Pāvels Nadtočajevs f710781b16 Prevent pending input event callbacks from erasing the window in the middle of a loop. 2025-02-18 15:26:13 +02:00
bruvzg f86a24fcfd [Window] Fix flashing subwindows. 2025-02-18 08:14:54 +02:00
Pāvels Nadtočajevs ae61b2f655 [Windows] Fix missing argument in non-console logger call. 2025-02-14 00:09:51 +02:00
bruvzg 3f2a29cd9d [Windows] Read Wacom config to check if Windows Ink is disabled and auto switch to WinTab. 2025-02-13 15:10:16 +02:00
Rémi Verschelde 2fd6c635d5 Merge pull request #102744 from Hilderin/fix-floating-window-freeze-when-moving
Fix Game and editor freeze when clicking on the game's title bar
2025-02-12 11:21:11 +01:00
Rémi Verschelde bd87c3a76b Merge pull request #102247 from Hilderin/fix-embedded-game-modal-dialog
Fix Modal Dialog with Embedded Game
2025-02-12 11:21:01 +01:00
Hilderin e9fef1c833 Fix Game and editor freeze when clicking on the game's title bar 2025-02-11 21:41:03 -05:00
Lukas Tenbrink e34f1f504c Use `std::size` instead of `sizeof(a) / sizeof(a[0])` pattern throughout the codebase. 2025-02-07 14:57:48 +01:00
Rémi Verschelde 00d806a9ae Merge pull request #102470 from Hilderin/fix-floating-window-close-opened-dialog
Fix Floating Window request close when a dialog is opened
2025-02-07 01:39:38 +01:00
Hilderin a9e06b8f64 Fix Modal Dialog with Embedded Game 2025-02-05 21:14:34 -05:00
Hilderin a3d03717c0 Fix Floating Window request close when a dialog is opened 2025-02-05 20:34:32 -05:00
Rémi Verschelde 91907a89f7 Thirdparty: Harmonize patches to document downstream changes 2025-02-06 01:40:03 +01:00
Thaddeus Crews ca3e268dfe
Merge pull request #101754 from bruvzg/vk_oem_only
[Windows] Override key codes with Unicode values for OEM keys only.
2025-02-05 10:27:16 -06:00
Thaddeus Crews 295a1dd5f7
Merge pull request #102067 from Eddy-Rogers/102008-TempDirSlashes
Windows: Normalize slashes in return of `OS.get_temp_dir()`
2025-01-31 09:15:51 -06:00
Pāvels Nadtočajevs b3f7c8f5d3 [Export] Respect icon/splash screen import settings. 2025-01-31 07:45:16 +02:00
NOLogicalSense b38103e95d Windows: Normalize slashes in return of `OS.get_temp_dir()` 2025-01-30 22:02:20 +01:00
Thaddeus Crews f4c2ffffb7
Merge pull request #102134 from bruvzg/win_main_cleanup
[Windows] Remove unused code from `godot_windows.cpp`.
2025-01-29 17:45:15 -06: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
Pāvels Nadtočajevs d9bba03392 [Windows] Remove unused code from `godot_windows.cpp`. 2025-01-28 20:12:47 +02: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
bruvzg 14b9f64a18 Update Windows icon cache after export. 2025-01-27 17:09:25 +02: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
Hilderin 9eed43d429 Fix NOTIFICATION_WM_CLOSE_REQUEST in Embedded Floating Window 2025-01-21 21:03:15 -05:00
Thaddeus Crews 8cf94c8de5
Merge pull request #101763 from SupSuper/patch-1
[Windows] Fix left/right Shift key regression
2025-01-21 11:55:21 -06:00
Daniel 17423e9899 [Windows] Fix left/right Shift key regression
Fixes #101384 by checking the latest state of the Shift keys before sending the KEYUP event.
2025-01-20 23:02:58 +00:00
bruvzg d65c07da4c [Windows] Override key codes with Unicode values for OEM keys only. 2025-01-18 14:56:18 +02:00
bruvzg 7c50a7822e [Windows] Make native dialogs non-cancelable and stay on top of parent. 2025-01-17 17:44:34 +02:00
Pāvels Nadtočajevs 2e99d84e87 [DisplayServer] Add missing `FEATURE_WINDOW_DRAG` flag to Windows, X11 and Wayland display servers. 2025-01-14 15:26:32 +02:00
Pāvels Nadtočajevs b252867145 [macOS/Windows] Add `Emoji & Symbols` context menu item to LineEdit/TextEdit to show system character picker. 2025-01-10 09:25:34 +02:00
Rémi Verschelde a0de7d0e01 Merge pull request #101257 from SteffenBlake/remote-debug-windows-battery-fix
Windows: Update export script's task to work even on battery power
2025-01-09 13:50:59 +01: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