Commit Graph

36 Commits

Author SHA1 Message Date
3d1c9fd5de Move server files into their subfolders 2025-09-30 19:39:39 -07:00
838cb0eefc [macOS] Add support for exporting macOS 26 Liquid Glass icons. 2025-07-28 14:35:48 +03:00
8b045ca8fe [macOS] Do not use NSApplication main loop for headless mode. 2025-07-17 08:42:55 +03:00
0b3496fb4f Add support for SDL3 joystick input driver
Made possible by EIREXE, xsellier and the SDL team.

This commit includes statically linked SDL3 for Windows, Linux and macOS.
The vendored copy of SDL3 was setup to only build the required subsystems
for gamepad/joystick support, with some patches to be able to make it as
minimal as possible and reduce the impact on binary size and code size.

Co-authored-by: Álex Román Núñez <eirexe123@gmail.com>
Co-authored-by: Xavier Sellier <xsellier@gmail.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-06-25 01:28:50 +02:00
bb9d6d0d02 Merge pull request #107113 from mihe/macos-open-in-program
Add `OS::open_with_program` for opening files/directories with a specific program on macOS
2025-06-05 13:13:49 +02:00
f610c81943 Add OS::open_with_program for opening files/directories with a specific program on macOS
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2025-06-05 10:12:01 +02:00
98f377d9d0 Use system timer/wait functions for frame delay when screen reader is active. 2025-06-04 13:44:02 +03:00
ee181951b6 [macOS] Add support for loading shell environment from UI apps. 2025-06-03 18:27:29 +03:00
00e1fdec2c MacOS: Embedded window support. 2025-05-06 06:09:05 +10:00
e6d3cf63fb [ColorPicker, macOS] Add link to request required screen recording permission. 2025-04-23 22:25:10 +03:00
5665e55f9a [macOS] Fix running with DisplayServerHeadless. 2025-03-27 15:08:07 +02:00
a317ce75a6 [macOS] Replace custom main loop with [NSApp run] and CFRunLoop observer. 2025-03-24 10:31:16 +02:00
324512e11c Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
cd17cb0110 [macos, ios]: Refactor joypad support into shared code, numerous bugfixes 2025-01-08 07:00:23 -07:00
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
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
a6dfd1cf6e Implement get_model_name on macOS and Windows. 2024-11-12 10:34:24 +02:00
9949d5a089 [macOS] Remove kill override. 2024-08-08 21:39:00 +03:00
1dfcbccfe6 [macOS] Fix is_process_running and kill for bundled apps. 2024-07-31 16:54:53 +02:00
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
ede88cf59d Fix loading GDExtension dependencies on Android 2024-04-19 07:55:08 -07:00
b73e740786 Add renaming of PDB files to avoid blocking them 2024-04-05 00:14:23 +03:00
07313a08f4 Migrate macos controller API to GameController.h
This should fix a lot of issues regarding to old controller API, such as vibration

Haptics (vibrations) are only available in macOS 11+, so haptics are now
processed in macOS 11+ only. Also, this doesn't interfere with
controller's input as controller support is available in macOS 10.9+.

Added a Note for macOS regarding vibration support
2024-02-20 08:13:05 -06:00
a8bc9f3e78 Add const lvalue ref to core/* container parameters 2024-02-14 11:20:36 -03:00
4790da7900 [macOS] Implement optional native file selection dialog support for sandboxed apps. 2023-07-12 22:36:24 +03:00
944fbce347 Enable S3TC_BPTC but not ETC2_ASTC by default 2023-06-09 11:38:29 -05:00
9e4315bb50 Style: Harmonize header includes in platform ports
This applies our existing style guide, and adds a new rule to that style
guide for modular components such as platform ports and modules:

Includes from the platform port or module should be included with relative
paths (relative to the root folder of the modular component, e.g.
`platform/linuxbsd/`), in their own section before Godot's "core" includes.

The `api` and `export` subfolders also need to be handled as self-contained
(and thus use relative paths for their "local" includes) as they are all
compiled for each editor platform, without necessarily having the api/export
matching platform folder in the include path.
E.g. the Linux editor build will compile `platform/android/{api,export}/*.cpp`
and those need to use relative includes for it to work.
2023-06-08 15:19:19 +02:00
6fd9982358 [TLS] Add support for platform-specific CA bundles.
Adds a new OS::get_system_ca_certs method which can be implemented by
platforms to retrieve the list of trusted CA certificates using OS
specific APIs.

The function should return the certificates in PEM format, and is
currently implemented for Windows/macOS/LinuxBSD(*)/Android.

mbedTLS will fall back to bundled certificates when the OS returns no
certificates.

(*) LinuxBSD does not have a standardized certificates store location.
    The current implementation will test for common locations and may
    return an empty string on some distributions (falling back to the
    bundled certificates).
2023-05-12 09:58:23 +02:00
a97225c753 [macOS] Implement OS::shell_show_in_file_manager() 2023-04-25 11:48:41 +03:00
d95794ec8a One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
ecec415988 Use system fonts as fallback and improve system font handling.
Add support for font weight and stretch selection when using system fonts.
Add function to get system fallback font from a font name, style, text, and language code.
Implement system font support for Android.
Use system fonts as a last resort fallback.
2022-12-04 18:44:20 +02:00
ac9786c525 Add get_distribution_name() and get_version() to OS
supports: LinuxBSD, Windows, macOS, iOS, Android, UWP

Co-authored-by: bruvzg
2022-09-16 11:17:36 +02:00
6e647dea24 Remove unused force_quit variable from many OS abstractions 2022-08-27 13:41:53 +02:00
36ef8f29dc Implement support for loading system fonts on Linux, macOS / iOS and Windows. 2022-07-26 08:38:05 +03:00
90019676b0 Code quality: Fix header guards consistency
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 11:17:40 +02:00
8823eae328 Rename OSX to macOS and iPhoneOS to iOS. 2022-07-21 09:37:52 +03:00