1
0
Fork 0
Commit Graph

576 Commits

Author SHA1 Message Date
Thaddeus Crews 713a1ba554
Style: Standardize Obj-C `#import` syntax 2025-03-08 09:28:34 -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
Thaddeus Crews 3c43508ed7
Merge pull request #102427 from AThousandShips/fix_substr
Clean up some uses of `String::substr`
2025-03-07 15:12:33 -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
Thaddeus Crews 5788e436d3
Merge pull request #95049 from Grublady/mac_system_color
Use windowBackgroundColor instead of controlColor for macOS system base color
2025-03-07 12:06:33 -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
bruvzg 3e4e6e6c0c Improve native file dialog parent window selection. 2025-03-06 17:15:39 +02:00
Grublady 2b16d4e002 Use windowBackgroundColor instead of controlColor for macOS system base color
Per Apple Developer Documentation:
windowBackgroundColor: "The color to use for the window background."
controlColor: "The color to use for the flat surfaces of a control."

Godot's base_color more closely corresponds to windowBackgroundColor.
In some cases, controlColor may even return values that are not appropriate for use as a base color.
2025-03-05 15:01:27 -05:00
Pāvels Nadtočajevs ab717497ef [Windows] Offload `RenderingDevice` creation test to subprocess. 2025-02-24 19:40:10 +02: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
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
SheepYhangCN c0eec97e98 macOS: Implement fallback from Metal to Vulkan for x86_64 2025-02-10 13:23:46 +01: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
Pāvels Nadtočajevs 4b8cfc3040 Fix native popup menus position in embedded windows. 2025-02-01 21:31:03 +02:00
Pāvels Nadtočajevs b3f7c8f5d3 [Export] Respect icon/splash screen import settings. 2025-01-31 07:45:16 +02: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
Malcolm Anderson 998e3dfcf7 Update the app bundle's creation time to match the build time on macOS
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2025-01-25 20:21:17 -08: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 8e0f498400 Merge pull request #101266 from WhalesState/color-picking-fix
Fix color picking on Linux/X11.
2025-01-09 00:42:22 +01:00
Rémi Verschelde 76c8e76560 Merge pull request #101284 from akx/tyops
A handful of typo fixes
2025-01-08 15:53:33 +01:00
Rémi Verschelde dea597c679 Merge pull request #94580 from stuartcarnie/sgc/macos_joypad
Apple: Bug fixes and improvements for game controllers
2025-01-08 15:53:15 +01:00
Stuart Carnie cd17cb0110 [macos, ios]: Refactor joypad support into shared code, numerous bugfixes 2025-01-08 07:00:23 -07:00
Aarni Koskela f134769506 Fix various typos
* Add TODO notes for typos that should be fixed for 5.0

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-08 14:47:42 +02:00
WhalesState 989161e117 Fix color picking on linux. 2025-01-08 10:32:25 +02:00
Rémi Verschelde 0fee2724f0 Merge pull request #100751 from YYF233333/force_regex_with_editor
Force build editor with regex module, remove checking code
2025-01-07 23:17:35 +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
Pāvels Nadtočajevs 7f0b4e58b0 Implement `DisplayServer.window_start_resize`. 2025-01-07 07:58:02 +02:00
Rémi Verschelde 399f585042
Merge pull request #99603 from stuartcarnie/metal_fx_upscaling
Metal: Add MetalFX upscaling support
2025-01-06 22:47:08 +01:00
Stuart Carnie 11dc4f2e5e Metal: Add MetalFX upscaling support
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-01-06 06:03:18 -07: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
Rémi Verschelde eaed664bce
Merge pull request #100637 from bruvzg/unset_fw
Unset last focused window when it is destroyed.
2024-12-20 23:57:13 +01:00
Pāvels Nadtočajevs 73faa509ea Unset last focused window when it is destroyed. 2024-12-20 09:40:25 +02:00
Hilderin 9d2a4c03be Embedding game process in editor 2024-12-18 17:52:42 -05: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
Thaddeus Crews a7fa0528bb
Merge pull request #100372 from Calinou/os-add-get-version-alias
Add `OS.get_version_alias()` to return a human-readable Windows/macOS version number
2024-12-16 12:09:40 -06:00
Hugo Locurcio 928982891e Add `OS.get_version_alias()` to return a human-readable Windows/macOS version number
Windows 11's major version number is actually 10.x.x, which can be confusing
if you don't know about this quirk. `OS.get_version_alias()` avoids this
by displaying the "branding" version number and the build number as a suffix,
so that individual updates can still be distinguished from each other.

On macOS, `OS.get_version_alias()` returns the version number prepended
with the version name (e.g. Sequoia for macOS 15).

On other operating systems, this returns the same value as `OS.get_version()`.
2024-12-14 18:47:50 +01:00
Thaddeus Crews 9535cd064f
Merge pull request #97810 from pafuent/getting_ccache_working_on_mac
Improve detection of ccache on macOS
2024-12-13 16:19:32 -06:00
Pablo Andres Fuente 7c4c1100e0 Improving detection of ccache on Mac
Before this commit, ccache where only used on Mac when
`OSXCROSS_ROOT` was defined. Now, it could be used even
when that envirnment variable is not defined.
2024-12-13 09:50:27 -03:00
Rémi Verschelde f86b3696f6
SCons: Properly set SSE2 as baseline on x86_32
Setting it only for release templates on Windows and macOS was inconsistent,
and Jolt requires it as a minimum.

Drop the `-mxsave` flag from the raycast module, this doesn't seem to be
used explicitly by Embree, and unnecessarily makes our config and baseline
muddy.
2024-12-12 22:44:44 +01:00
Thaddeus Crews 4a1a7addd1
Merge pull request #100179 from zaevi/fix_transient_topmost
[Windows & macOS] Fix popup window shows behind `always_on_top` parent.
2024-12-11 17:35:53 -06:00
Pāvels Nadtočajevs 8b853b7db7 [macOS] Print full source paths in the trace. 2024-12-11 09:21:25 +02:00
Thaddeus Crews 69c67ede17
Merge pull request #88950 from bruvzg/excap
[macOS, Windows] Add support for excluding windows from a screenshot.
2024-12-10 14:16:10 -06:00
bruvzg 9fece033ab [macOS, Windows] Add support for excluding windows from a screenshot. 2024-12-10 11:00:13 +02:00
Zae 2211b1bf91 Fix popup shows behind always_on_top parent. 2024-12-10 01:35:25 +08: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
Thaddeus Crews 44cda51110
Merge pull request #98812 from bruvzg/macos_bundles_as_file
[macOS] Handle bundles as files in the embedded file dialogs.
2024-12-03 14:41:07 -06:00
Thaddeus Crews 156bc92282
Merge pull request #98397 from adamscott/add-tmp-support
Add temp utilities (alias `OS::get_temp_dir()`, `FileAccess::create_temp()`, and `DirAccess::create_temp()`)
2024-12-03 14:40:59 -06:00
Thaddeus Crews a135a6478a
Merge pull request #98383 from RandomShaper/deprecate_unsafe_th_rend
Deprecate the pointless unsafe threading model for rendering
2024-12-03 14:40:56 -06:00
Pāvels Nadtočajevs 84650f2018 Implement `DisplayServer.beep`. 2024-12-03 12:43:26 +02:00
bruvzg d5e599f77e [macOS] Handle bundles as files in the embedded file dialogs. 2024-12-03 12:41:52 +02:00
Adam Scott 1b3e483899
Add file and dir temporary utilities
Co-authored by @Alex2782 for the Android bindings.
Many thanks to the reviewers also.

Co-authored-by: Alex <alex.hart.278@gmail.com>
2024-12-02 12:08:14 -05:00
Rémi Verschelde bb09a6f061
Merge pull request #99642 from bruvzg/mac_win_tile
[macOS] Use native window drag for the custom editor title bars.
2024-12-02 17:20:19 +01:00
Pāvels Nadtočajevs b248d66265 [macOS] Use native window drag for the custom editor title bars. 2024-12-02 17:40:27 +02:00
Pāvels Nadtočajevs d3e16c9ee2 [iOS] Add options to specify additional entitlements and capabilities in the export settings. 2024-12-02 17:38:19 +02:00
rune-scape d58b2e879f Get rid of easily removable uses of const_cast 2024-12-01 17:50:13 -08: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 6c9337de36
Merge pull request #99217 from dustdfg/refactor_compiler_min_detection
Buildsystem: Refactor compiler detection code
2024-11-15 10:42:42 -06:00
Yevhen Babiichuk (DustDFG) d55ed0cb15 Buildsystem: Refactor compiler detection code
* Delete old check for gcc 8 as we support 9 or higher
* Flatten branches for clang and apple clang
* Renamed is_vanilla_clang to is_apple_clang to be more clear

Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-11-15 12:59:46 +02:00
Pāvels Nadtočajevs f5fad7592f Use processed filter list for native dialogs. 2024-11-15 12:08:33 +02:00
Pedro J. Estébanez a46ea9d064 Deprecate the pointless unsafe threading model for rendering 2024-11-14 10:43:29 +01:00
Thaddeus Crews cb286da1dd
Merge pull request #99112 from bruvzg/get_model_name
Implement `get_model_name` on macOS and Windows.
2024-11-12 09:27:52 -06:00
Pāvels Nadtočajevs a6dfd1cf6e Implement `get_model_name` on macOS and Windows. 2024-11-12 10:34:24 +02:00
Thaddeus Crews f2136384e4
CI: Update `ruff` & `mypy` pre-commit hooks
• ruff: 0.6.6 → 0.7.3
• mypy: 1.11.2 → 1.13.0
2024-11-11 11:27:42 -06:00
bruvzg 2d66988f99
[GDExtension] Improve macOS library loading/export. 2024-11-04 09:28:30 +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 05a4620e88
Merge pull request #98615 from Summersay415/three-opengls-please
Fix fallbacks to OpenGL
2024-10-29 19:25:48 -05:00
Thaddeus Crews b7a0971ad2
Merge pull request #97934 from adamscott/give-AThousandShips-a-break
[Codestyle] Set clang-format `RemoveSemicolon` rule to `true`
2024-10-29 19:25:36 -05:00
Summersay415 6d14cd6ff9 Fix fallbacks to OpenGL 2024-10-28 22:57:19 +07:00
Thaddeus Crews 07e759b74a
Merge pull request #97771 from dsnopek/openxr-linux-egl
OpenXR: Add support for Wayland on Linux
2024-10-25 13:04:08 -05:00
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
Adam Scott 0d350e7108
Set clang-format `RemoveSemicolon` rule to `true`
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
Yevhen Babiichuk (DustDFG) af6d260c17 Don't include `core/io/image.h` in `core/os/os.h`
`core/os/os.h` doesn't use `core/io/image.h`. It just brings
transitive dependencies. Lots of dependencies because `core/os/os.h`
is transitively included in almost every file of godot

Also added `core/io/image.h` into files^1 where `Ref<Image>` and `core/os/os.h`
were used to prevent obscure errors involving `Ref<Image>`

^1 except those which include `core/io/image_loader.h` or `core/io/image.h` by
corresponding .h file with the same name

Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-10-18 19:04:19 +03:00
Travis Lange 5777a3fed5 added ability to add extra codesign entitlements for macos from godot editor 2024-10-13 09:33:42 -04: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
Rémi Verschelde b0d512636c
Merge pull request #97570 from dustdfg/ios_macos/print_warning_instead_of_comments
Replace comments with printed warning for Metal on x86_64
2024-10-04 22:43:46 +02:00
David Snopek 256699ee31 OpenXR: Add support for Wayland on Linux 2024-10-04 11:44:05 -05:00
Rémi Verschelde c28dd316a9
Merge pull request #97757 from bruvzg/max_move_screen
Fix `window_set_current_screen` for maximized windows.
2024-10-04 11:22:10 +02:00
Rémi Verschelde dedb2ff217
Merge pull request #97678 from bruvzg/fix_nd_menu
[macOS] Fix menu crash when used from opened native dialog.
2024-10-04 11:21:54 +02:00
bruvzg d2f3725120
Fix window_set_current_screen for maximized windows. 2024-10-03 10:38:32 +03:00
Dario e2c6daf7ef Implement asynchronous transfer queues, thread guards on RenderingDevice. Add ubershaders and rework pipeline caches for Forward+ and Mobile.
- Implements asynchronous transfer queues from PR #87590.
- Adds ubershaders that can run with specialization constants specified as push constants.
- Pipelines with specialization constants can compile in the background.
- Added monitoring for pipeline compilations.
- Materials and shaders can now be created asynchronously on background threads.
- Meshes that are loaded on background threads can also compile pipelines as part of the loading process.
2024-10-02 15:11:58 -03:00
bruvzg 4c8f8e6980
[macOS] Fix menu crash when used from opened native dialog. 2024-10-01 08:30:30 +03:00
Yevhen Babiichuk (DustDFG) 1abcfdda85 Replace comments with printed warning for Metal on x86_64
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-09-28 08:28:33 +03:00
Thaddeus Crews 9f9ee0c813
SCons: Add unobtrusive type hints in SCons files 2024-09-25 09:34:35 -05:00
Rémi Verschelde c2564f42aa
Merge pull request #97142 from SheepYhangCN/master
Fallback to OpenGL 3 if other rendering drivers are not supported
2024-09-20 16:06:35 +02:00
Thaddeus Crews b37fc1014a
Style: Apply new `clang-format` changes 2024-09-20 08:09:48 -05:00
SheepYhangCN 3b839347df Added fallback_to_opengl3 2024-09-20 06:10:05 +08:00
kobewi 4023ace08d Add Advanced Settings switch to Editor Settings 2024-09-17 12:20:55 +02:00
bruvzg 8d039146d9
[macOS] Fix dynamic library lookup for system libraries. 2024-09-14 18:22:36 +03: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 1f0b1220d2
Reenable macOS .app export from Windows, add warnings about Unix permissions. 2024-09-07 01:12:10 +03:00
Rémi Verschelde 2c733cbf1c
Merge pull request #95885 from bruvzg/macos_arch
[macOS] Use per-architecture min. OS version for export.
2024-09-06 11:11:01 +02:00
bruvzg c273786758
Update rendering driver name on fallbacks. Fix rendering driver/method in the editor system info. 2024-09-01 18:22:40 +03:00
bruvzg 07e986f728
Allow adding custom export platforms using scripts / GDExtension. 2024-08-28 10:29:01 +03:00
bruvzg f8a6c0e8ab
Enable fallback from ANGLE to native and improve ANGLE error messages. 2024-08-25 21:19:54 +03:00
Rémi Verschelde 568589c9d8
Merge pull request #90993 from darksylinc/matias-TheForge
Add debug utilities for Vulkan
2024-08-22 00:38:22 +02:00
Matias N. Goldberg 364f916f3f
Add debug utilities for Vulkan
Features:
- Debug-only tracking of objects by type. See
get_driver_allocs_by_object_type et al.
 - Debug-only Breadcrumb info for debugging GPU crashes and device lost
 - Performance report per frame from get_perf_report
- Some VMA calls had to be modified in order to insert the necessary
memory callbacks

Functionality marked as "debug-only" is only available in debug or dev
builds.

Misc fixes:
 - Early break optimization in RenderingDevice::uniform_set_create

============================

The work was performed by collaboration of TheForge and Google. I am
merely splitting it up into smaller PRs and cleaning it up.
2024-08-21 23:48:08 +02:00
Rémi Verschelde 6e9bcc0f18
SCons: Better validation for platform-specific opt-in drivers
This replaces cryptic compilation errors with a clear error message
and early build termination.
2024-08-21 22:53:34 +02:00